目录
Redis支持五种数据类型:String, Hash, List, Set, ZSet,这个系列介绍一下如何使用这些数据类型,本篇介绍使用命令行模式以及python客户端对redis进行操作,实际项目的过程中也大多是一模一样的用法。
相关内容:
Redis系列(一)、CentOS7下安装Redis6.0.3稳定版
------------------------Redis无序集合类型----------------------
介绍
Redis 的 Set 是 string 类型的无序集合。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
集合中最大的成员数为 2^32 - 1 (4294967295, 每个集合可存储40多亿个成员)。
命令行模式
进入命令行模式:
redis-cli -a password_value
redis-cli -a password_value --raw
--raw 避免中文显示乱码

help
使用下面的命令查看手册:
help @set

増
sadd
给集合内新增成员,若集合不存在则创建集合并新增成员:
SADD key member [member ...]

删
srem
从集合中删除指定的成员,返回删除的个数:
SREM key member [member ...]

改
smove
SMOVE source destination member

查
smembers
查看集合中所有的成员:
SMEMBERS key

scard
返回集合中成员的个数 :
SCARD key

srandmember
从集合中随机返回指定个数的成员:
SRANDMEMBER key [count]

sismember
判断对象是否是集合中的成员,返回1/0,True/False:
SISMEMBER key member

spop
从集合中随机弹出一个成员,返回该成员并从集合中删除该成员:
SPOP key

交集
sinter
取多个集合的交集,返回这些集合中共同拥有的成员:
SINTER key [key ...]

sinterstore
将多个集合的交集的结果保存为一个新的集合destination ,返回新集合的成员个数:
SINTERSTORE destination key [key ...]


并集
sunion
取多个集合的并集,相同的成员会被去重:
SUNION key [key ...]

sunionstore
将多个集合的并集的结果保存为一个新的集合destination ,返回新集合的成员个数:
SUNIONSTORE destination key [key ...]


差集
sdiff
取多个集合的差集,以最左边的为主集合,返回左集合中有而其他集合没有的成员:
SDIFF key [key ...]

sdiffstore
将多个集合的差集的结果保存为一个新的集合destination ,返回新集合的成员个数 :
SDIFFSTORE destination key [key ...]


应用场景
- 抽奖:随机返回指定个数成员
- 共同好友:取交集
- 好友推荐:根据标签取交集,交集的成员个数大于某个阈值触发推荐动作
Python客户端与命令行函数基本上完全一致,篇幅太长因此不再过多的展示。
希望本文对你有帮助,请点个赞鼓励一下作者吧~ 谢谢!

本文深入探讨Redis的Set数据类型,介绍其作为无序集合的特性与优势,包括高效的操作如添加、删除、查找等,并详细解析交集、并集、差集等集合运算的应用场景,如抽奖和好友推荐系统。
1424

被折叠的 条评论
为什么被折叠?



