【Redis数据库】命令学习笔记——列表(list)+集合(set)+有序集合(sorted set)(17+15+20个超全字典版)

本篇基于redis 4.0.11版本,学习列表(list)和集合(set)和有序集合(sorted set)相关命令。

  • 列表按照插入顺序排序,可重复,可以添加一个元素到列表的头部(左边)或者尾部(右边)。
  • 集合是 String 类型的无序集合,不能出现重复的数据
  • 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员,但分数(score)却可以重复。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数权重来为集合中的成员进行从小到大的排序。

 

列表相关命令:

序号命令描述实例返回
1LPUSH key value1 [value2] 将一个或多个值插入到列表头部将redis插入列表runoobkey中:LPUSH runoobkey redis

成功:(integer) 1

失败:(integer) 0

2LPUSHX key value 将一个值插入到已存在的列表头部将redis插入已有列表runoobkey2中:LPUSHX runoobkey2 redis

成功:(integer) 1

失败:(integer) 0

3LRANGE key start stop 获取列表指定范围内的元素获取runoobkey列表中的全部值:LRANGE runoobkey 0 -11) "mysql"
2) "mongodb"
3) "redis"
4) "redis"
4BLPOP key1 [key2 ] timeout 移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。移出并获取列表list1的第一个元素,超时时间10s:BLPOP list1 10(nil)
(10.02s)
5BRPOP key1 [key2 ] timeout 移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。移出并获取列表runoobkey的最后一个元素,超时时间10s:BRPOP runoobkey 101) "runoobkey"  # 被弹出元素所属的列表键
2) "redis"  # 被弹出的元素 
6BRPOPLPUSH source destination timeout 从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。将最后一个值放到msg中,没有元素等10s:BRPOPLPUSH runoobkey msg 10"redis" # 被弹出的元素 
7LINDEX key index 通过索引获取列表中的元素获取列表runoobkey第一个值:lindex runoobkey 0"mysql"
8LINSERT key BEFORE|AFTER pivot value 在列表的元素前或者后插入元素在runoobkey列表"mongodb"前插入"insert":linsert runoobkey before "mongodb" "insert"(integer) 3
9LLEN key 获取列表长度llen runoobkey"5"
10LPOP key 移出并获取列表的第一个元素lpop runoobkey"bar"
11LREM key count value 移除列表元素lrem runoobk 0 123"2"
12LSET key index value 通过索引设置列表元素的值lset list1 1 123456OK
13LTRIM key start stop 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。ltrim list1 0 1OK
14RPOP key 移除并获取列表最后一个元素rpop list1"1234"
15RPOPLPUSH source destination 移除列表的最后一个元素,并将该元素添加到另一个列表并返回rpoplpush list1 runoobkey"12345"
16RPUSH key value1 [value2] 在列表中添加一个或多个值rpush list1 987 988"4"
17 RPUSHX key value 为已存在的列表添加值   

 

集合相关命令:

序号命令描述实例返回
1SADD key member1 [member2] 向集合添加一个或多个成员向集合runoobkey中添加redis:SADD runoobkey redis

成功:(integer) 1

失败:(integer) 0

2SCARD key 获取集合的成员数获取集合sets1成员数:scard sets1"3"
3SDIFF key1 [key2] 返回给定所有集合的差集返回sets1和sets2差集:sdiff sets1 sets21) "redis"
4SDIFFSTORE destination key1 [key2] 返回给定所有集合的差集并存储在 destination 中将sets1和sets2差集放sets3中:sdiffstore sets3 sets1 sets2OK
5SINTER key1 [key2] 返回给定所有集合的交集返回sets1和sets2交集:sinter sets1 set2 1) "mongodb"
6SINTERSTORE destination key1 [key2] 返回给定所有集合的交集并存储在 destination 中

将sets1和sets2交集放sets4中:sinterstore sets4 sets1 sets2 

OK
7SISMEMBER key member 判断 member 元素是否是集合 key 的成员判断sets1中是否存在redis:SISMEMBER sets1 redis

存在:(integer) 1

不存在:(integer) 0

8SMEMBERS key 返回集合中的所有成员SMEMBERS runoobkey1) "mysql"
2) "mongodb"
3) "redis"
9SMOVE source destination member 将 member 元素从 source 集合移动到 destination 集合将mysql从集合sets1移到sets4中:smove sets1 sets4 mysql

成功:(integer) 1

失败:(integer) 0

10SPOP key 移除并返回集合中的一个随机元素spop sets2mongodb
11SRANDMEMBER key [count] 返回集合中一个或多个随机数返回集合sets5中两个元素:srandmember sets5 21) "abcdef"
2) "abcdefgh"
12SREM key member1 [member2] 移除集合中一个或多个成员移除集合sets5中abc abcdfg:srem sets5 abc abcdfg

成功:(integer) 1

失败:(integer) 0

13SUNION key1 [key2] 返回所有给定集合的并集返回集合sets1 sets2 sets3并集:SUNION sets1 sets2 sets31) "postgresql"
2) "redis"
3) "mongodb"
14SUNIONSTORE destination key1 [key2] 所有给定集合的并集存储在 destination 集合中  
15 SSCAN key cursor [MATCH pattern] [COUNT count] 迭代集合中的元素 查找sets5集合第二个元素 如果匹配m*的返回,不匹配返回空:sscan sets5 2 match m*  1) "0"
2) 1) "mongodb"

 

有序集合相关命令:

序号命令描述实例返回
1ZADD key score1 member1 [score2 member2] 向有序集合添加一个或多个成员,或者更新已存在成员的分数ZADD runoobkey 1 redis(integer) 1
2ZRANGE key start stop [WITHSCORES] 通过索引区间返回有序集合成指定区间内的成员返回有序集合sortedsets1中0到10的权重和值:zrange sortedsets1 0 10 withscores1) "redis"
2) "1"
3) "redis2"
4) "2"
5) "redis3"
6) "3"
7) "redis4"
8) "3"
3ZCARD key 获取有序集合的成员数返回有序集合sortedsets1成员数:zcard sortedsets1"4"
4ZCOUNT key min max 计算在有序集合中指定区间分数的成员数返回有序集合中分数为2-3的成员数:zcount sortedsets1 2 3"3"
5ZINCRBY key increment member 有序集合中对指定成员的分数加上增量 increment给有序集合sortedsets1中redis加5:zincrby sortedsets1 5 redis增加后的值:"11"
6ZINTERSTORE destination numkeys key [key ...] 计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中将sortedsets1和sortedsets2两个集合并集存到sortedsets10中:zinterstore sortedsets10 2  sortedsets1  sortedsets2成功成员数量:(integer) 4
7ZLEXCOUNT key min max 在有序集合中计算指定字典区间内成员数量集合中大于等于redis 小于redis3的数量:zlexcount sortedsets1 [redis (redis3
集合全部数量:zlexcount sortedsets1 - +
"1";
"4"
8ZRANGEBYLEX key min max [LIMIT offset count] 通过字典区间返回有序集合的成员zrangebylex sortedsets7 (2 [61) "3"
2) "5"
3) "6"
9ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT] 通过分数返回有序集合指定区间内的成员返回集合中大于3的全部成员:ZRANGEBYSCORE sortedsets7 (3 +inf WITHSCORES 

1) "3"
2) "5"
3) "6"

10ZRANK key member 返回有序集合中指定成员的索引返回集合中6的索引:zrank sortedsets7 6 "4"
11ZREM key member [member ...] 移除有序集合中的一个或多个成员移除成员6:zrem sortedsets7 6 
12ZREMRANGEBYLEX key min max 移除有序集合中给定的字典区间的所有成员移除集合中大于4小于等于5的成员:zremrangebylex sortedsets7 (4 [5 "1"
13ZREMRANGEBYRANK key start stop 移除有序集合中给定的排名区间的所有成员ZREMRANGEBYRANK sortedsets7 0 1 "2"
14ZREMRANGEBYSCORE key min max 移除有序集合中给定的分数区间的所有成员  
15ZREVRANGE key start stop [WITHSCORES] 返回有序集中指定区间内的成员,通过索引,分数从高到底ZREVRANGE sortedsets7 0 1 WITHSCORES1) "6"
2) "5"
3) "3"
4) "4"
16ZREVRANGEBYSCORE key max min [WITHSCORES] 返回有序集中指定分数区间内的成员,分数从高到低排序  
17ZREVRANK key member 返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序zrevrank sortedsets7 4;
zrevrank sortedsets7 3
null;
"1"
18ZSCORE key member 返回有序集中,成员的分数值返回集合3的分数值:zscore sortedsets7 3"4"
19ZUNIONSTORE destination numkeys key [key ...] 计算给定的一个或多个有序集的并集,并存储在新的 key 中  
20 ZSCAN key cursor [MATCH pattern] [COUNT count] 迭代有序集合中的元素(包括元素成员和元素分值) zscan sortedsets7 01) "0"
2) 1) "3"
   2) "4"
   3) "6"
   4) "5"

 

详见:Redis官方文档

上一篇:【Redis数据库】命令学习笔记——哈希(hash)(15个超全字典版)

下一篇:【Redis数据库】命令学习笔记——发布订阅、事务、脚本、连接命令汇总

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值