欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > [Redis] Redis命令(2)

[Redis] Redis命令(2)

2026/5/16 11:34:48 来源:https://blog.csdn.net/qq_53232485/article/details/148306992  浏览:    关键词:[Redis] Redis命令(2)

初次学习,如有错误还请指正

目录

Set命令

SortedSet类型


Set命令

Redis的Set结构与Java中的HashSet类似,可以看做是一个value为null的HashMap。因为也是一个hash表,

因此具备与HashSet类似的特征:

  • 无序

  • 元素不可重复

  • 查找快

  • 支持交集.并集.差集等功能

Set类型的常见命令

  • SADD key member…:向set中添加一个或多个元素
sadd s1 a b c

  • SREM key member…:移除set中的指定元素
srem s1 a

  • SCARD key:返回set中元素的个数
scard s1

  • SISMEMBER key member:判断一个元素是否存在于set中
sismember s1 b

  • SMEMBERS:获取set中的所有元素
smembers s1

  • SINTER key1 key2…:求key1与key2的交集

  • SDIFF key1 key2…:求key1与key2的差集

  • SUNION key1 key2..:求key1和key2的并集

sadd myset A B C 1 2 3
sadd myset1 a A b 1 4
sinter myset myset1
sunion myset myset1
sdiff myset myset1

SortedSet类型

Redis的SortedSet是一个可排序的set集合,与Java中的TreeSet有些类似,但底层数据结构却差别很大。SortedSet中的每一个元素都带有一个score属性,可以基于score属性对元素排序,底层的实现是一个跳表(SkipList)加 hash表。

SortedSet具备下列特性:

  • 可排序

  • 元素不重复

  • 查询速度快

因为SortedSet的可排序特性,经常被用来实现排行榜这样的功能。

SortedSet的常见命令有:

  • ZADD key score member:添加一个或多个元素到sorted set ,如果已经存在则更新其score值
zadd stu 85 jack 89 lucy 82 rose 95 tom 78 jerry 92 amy 76 miles

  • ZREM key member:删除sorted set中的一个指定元素
zrem stu tom

  • ZSCORE key member : 获取sorted set中的指定元素的score值
zscore stu rose

  • ZRANK key member:获取sorted set 中的指定元素的排名
zrank stu rose

  • ZCARD key:获取sorted set中的元素个数
zcard stu

  • ZCOUNT key min max:统计score值在给定范围内的所有元素的个数
zcount stu 0 80

  • ZINCRBY key increment member:让sorted set中的指定元素自增,步长为指定的increment值
zincrby stu 2 amy

  • ZRANGE key min max:按照升序排后,获取指定排名范围内的元素

  • ZREVRANGE key min max:按照降序排后,获取指定排名范围内的元素

zrange stu 0 2
zrevrange stu 0 2

  • ZRANGEBYSCORE key min max:按照score排序后,获取指定score范围内的元素
zrangebyscore stu 0 80

  • ZDIFF / ZINTER / ZUNION:求差集 / 交集 / 并集

注意:所有的排名默认都是升序,如果要降序则在命令的Z后面添加REV即可,例如:

  • 升序获取sorted set 中的指定元素的排名:ZRANK key member
zrank stu rose

  • 降序获取sorted set 中的指定元素的排名:ZREVRANK key memeber
zrevrank stu rose


THE END        

如有遗漏,欢迎补充,感谢 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词