1.String是最常用的一种数据类型,普通的key/value存储都可以归为此类。
aliyun_li:0>set key value
"OK"
aliyun_li:0>get key
"value"
aliyun_li:0>mget key key1 key2
1) "value"
2) "value1"
3) null
aliyun_li:0>set keynum 1
"OK"
aliyun_li:0>incr keynum
"2"
aliyun_li:0>incrby keynum 2
"4"
aliyun_li:0>decr keynum
"3"
aliyun_li:0>decrby keynum 3
"0"
aliyun_li:0>setnx key value
"0"
aliyun_li:0>setnx keyNotExists value
"1"
aliyun_li:0>setex keyNotExists1 10 value
"OK"
aliyun_li:0>ttl keyNotExists1
"-2"
aliyun_li:0>set key 1234567890
"OK"
aliyun_li:0>getrange key 0 1
"12"
aliyun_li:0>mset key1 value key2 value2
"OK"
aliyun_li:0>msetnx key1 value1 key2 value2 key3 value3
"0"
aliyun_li:0>mset key4 v4 key5 v5
"OK"
aliyun_li:0>mset key5 v5 key6 v6
"OK"
aliyun_li:0>getset key5 newv5
"v5"
aliyun_li:0>get key5
"newv5"
aliyun_li:0>get key
"v"
aliyun_li:0>append key a
"2"
aliyun_li:0>get key
"va"
2.Hash
Hash是一个String类型的field和value之间的映射表。
redis的Hash数据类型的key(hash表名称)对应的value实际的内部存储结构为一个HashMap。
Hash特别适合存储对象。
所存储的成员较少时数据存储为zipmap,当成员数量增大时会自动转成真正的HashMap,此时encoding为ht。
aliyun_li:0>hset k f1 "v1"
"1"
aliyun_li:0>hset k f2 "v2"
"1"
aliyun_li:0>hget k f1
"v1"
aliyun_li:0>hgetall k
1) "f1"
2) "v1"
3) "f2"
4) "v2"
aliyun_li:0>hlen k
"2"
3.List
lpush:将一个或多个值插入到列表头部
lrange:获取key对应的list的指定下标范围的元素,-1表示获取所有元素
lpop:移出并获取列表的第一个元素,并返回该元素
rpush:在key对应的list的尾部添加一个元素
rpop:从key对应的list的尾部删除一个元素,并返回该元素
aliyun_li:0>lpush lk v1 v2 v3 v4 v5
"5"
aliyun_li:0>lrange lk 0 -1
1) "v5"
2) "v4"
3) "v3"
4) "v2"
5) "v1"
aliyun_li:0>lpop lk
"v5"
aliyun_li:0>rpush lk v6
"5"
aliyun_li:0>lrange lk 0 -1
1) "v4"
2) "v3"
3) "v2"
4) "v1"
5) "v6"
aliyun_li:0>rpop lk
"v6"
4.Set
sadd:在key对应的set中添加一个元素
smembers:获取key对应的set的所有元素
spop:随机返回并删除key对应的set中的一个元素
suion:求给定key对应的set并集
sinter:求给定key对应的set交集
aliyun_li:0>sadd sk v1 v2 v3 v4 v5
"5"
aliyun_li:0>smembers sk
1) "v2"
2) "v1"
3) "v4"
4) "v3"
5) "v5"
aliyun_li:0>spop sk
"v2"
aliyun_li:0>smembers sk
1) "v4"
2) "v3"
3) "v1"
4) "v5"
aliyun_li:0>smembers sk1
1) "v6"
2) "v1"
aliyun_li:0>sunion sk sk1
1) "v3"
2) "v4"
3) "v6"
4) "v1"
5) "v5"
aliyun_li:0>sinter sk sk1
1) "v1"
5.SortSet
zadd :在key对应的zset中添加一个元素
zrange:获取key对应的zset中指定范围的元素,-1表示获取所有元素
zrem:删除key对应的zset中的一个元素
zrangebyscore:返回有序集key中,指定分数范围的元素列表,排行榜中运用
zrank:返回有序集合中指定成员的索引
set是通过hashmap存储,key对应set的元素,value是空对象
sortset是hashmap存储,还加了一层跳跃表
跳跃表:相当于双向链表,在其基础上添加前往比当前元素大的跳转链接
aliyun_li:0>zadd zk 1 v1 2 v2 3 v3 4 v4 5 v5
"5"
aliyun_li:0>zrange zk 0 -1
1) "v1"
2) "v2"
3) "v3"
4) "v4"
5) "v5"
aliyun_li:0>zrem zk v3
"1"
aliyun_li:0>zrange zk 0 -1
1) "v1"
2) "v2"
3) "v4"
4) "v5"
aliyun_li:0>zrangebyscore zk 1 3
1) "v1"
2) "v2"
aliyun_li:0>zrank zk v2
"1"
aliyun_li:0>zrange zk 0 -1
1) "v1"
2) "v2"
3) "v4"
4) "v5"
6.文章参考链接
a.https://blog.csdn.net/qq_32617703/article/details/103545990
b.https://www.runoob.com/redis/strings-mset.html