📢 最新动态
2025年7月,Redis官方宣布优化Set类型的内存存储效率,超大集合(百万级成员)的查询速度提升15%!现在正是掌握Set操作的黄金时机~
Redis的Set(集合)是一个无序且元素唯一的数据结构,就像数学里的集合一样,不允许重复值,它适合存储标签、好友列表、抽奖参与者等场景。
特点速览:
✔️ 自动去重
✔️ O(1)复杂度查询成员是否存在
✔️ 支持交并差集运算
SMEMBERS
0.0.1:6379> SMEMBERS tags 1) "python" 2) "database" 3) "redis"
⚠️ 注意:大集合慎用!会阻塞服务,建议用SSCAN
分页(下文会讲)。
SRANDMEMBER
想随机选一个元素?比如抽奖:
0.0.1:6379> SRANDMEMBER lottery_users "user_42"
加数字参数可批量获取(允许重复):
0.0.1:6379> SRANDMEMBER lottery_users 3 1) "user_13" 2) "user_7" 3) "user_42"
SSCAN
类似分页查询,避免SMEMBERS
的内存爆炸风险:
0.0.1:6379> SSCAN tags 0 COUNT 2 1) "10" # 下次遍历的游标 2) 1) "python" # 当前页数据 2) "database"
参数说明:
0
:起始游标(第一次为0) COUNT 2
:每批返回2条(非强制精确) SISMEMBER
快速判断元素是否在集合中:
0.0.1:6379> SISMEMBER tags "redis" (integer) 1 # 存在返回1 127.0.0.1:6379> SISMEMBER tags "java" (integer) 0 # 不存在返回0
SISMEMBER
替代SMEMBERS
+ 本地过滤 SADD
自动过滤重复数据 SINTER
(交集)/SUNION
(并集)/SDIFF
(差集) 超适合数据分析 Redis Set的查询操作既简单又强大:
SMEMBERS
→ 全量获取(小集合专用) SRANDMEMBER
→ 随机抽样 SSCAN
→ 安全遍历海量数据 SISMEMBER
→ 闪电式存在检测 下次遇到需要去重或快速判重的场景,不妨试试Redis Set吧!✨
📅 本文方法基于Redis 7.2+版本验证(2025年7月)
本文由 旗清晖 于2025-07-31发表在【云服务器提供商】,文中图片由(旗清晖)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/494659.html
发表评论