Redis基础数据结构

来自姬鸿昌的知识库
跳到导航 跳到搜索

string(字符串)

键值对

F:\下载目录\Redis-x64-5.0.14.1>redis-cli
127.0.0.1:6379> set test_key test_value
OK
127.0.0.1:6379> get test_key
"test_value"

批量键值对

127.0.0.1:6379> set test_key1 test_value1
OK
127.0.0.1:6379> set test_key2 test_value2
OK
127.0.0.1:6379> mget test_key test_key1 test_key2
1) "test_value"
2) "test_value1"
3) "test_value2"

过期和 set 命令扩展

127.0.0.1:6379> set name codehole
OK
127.0.0.1:6379> get name
"codehole"
127.0.0.1:6379> expire name 5    # 5s 后过期
(integer) 1
...           #等候 5s
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> setex name 5 codehole    # 5s 后过期,等价于 set + expire
OK
127.0.0.1:6379> get name
"codehole"
...    # 等候 5s
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> setnx name codehole    # 如果 name 不存在就执行 set 创建
(integer) 1
127.0.0.1:6379> get name
"codehole"
127.0.0.1:6379> setnx name holycoder
(integer) 0    #因为 name 已经存在,所以 set 创建不成功
127.0.0.1:6379> get name
"codehole"    # 没有改变

计数

如果 value 是一个整数,还可以对它进行自增操作。自增是有范围的,它的范围在 signed long 的最大值和最小值之间,超出了这个范围,Redis会报错

127.0.0.1:6379> set age 30

OK

127.0.0.1:6379> incr age

(integer) 31

127.0.0.1:6379> incrby age 5

(integer) 36

127.0.0.1:6379> incrby age -5

(integer) 31

127.0.0.1:6379> set codehole 9223372036854775807

OK

127.0.0.1:6379> incr codehole

(error) ERR increment or decrement would overflow

存储

字符串由多个字节组成,每个字节又由8个 bit 组成,如此便可以将一个字符串看成很多 bit 的组合,这便是 bitmap(位图)数据结构


list(列表)

hash(字典)

set(集合)

zset(有序集合)