1 / 5
文档名称:

Redis集合数据结构和常用命令.docx

格式:docx   大小:38KB   页数:5页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Redis集合数据结构和常用命令.docx

上传人:simple 2021/7/18 文件大小:38 KB

下载得到文件列表

Redis集合数据结构和常用命令.docx

文档介绍

文档介绍:Redis集合数据结构和常用命令
Redis 的集合不是一个线性结构,而是一个哈希表结构,它的内部会根据 hash 分子来存储和查找数据,理论上一个集合可以存储 2 的 32 次方减 1 个节点(大约 42 亿)个元素,因为采用哈希表结构,所以对于 Redis 集合的插入、删除和查找的复杂度都是 0(1),只是我们需要注意 3 点。
对于集合而言,它的每一个元素都是不能重复的,当插入相同记录的时候都会失败。
集合是无序的。
集合的每一个元素都是 String 数据结构类型。
Redis 的集合可以对于不同的集合进行操作,比如求出两个或者以上集合的交集、差集和并集等。集合命令,如表 1 所示。
表 1 集合命令
命   令
说   明
备   注
sadd key member1 [member2 member3......]
给键为 key 的集合増加成员
可以同时増加多个
scard key
统计键为 key 的集合成员数 

sdiffkey1 [key2]
找出两个集合的差集
参数如果是单key,那么 Redis 就返回这个 key 的所有元素
sdiftstore des key1 [key2]
先按 sdiff 命令的规则,找出 key1 和 key2 两 个集合的差集,然后将其保存到 des 集合中。

sinter key1 [key2]
求 key1 和 key2 两个集合的交集。
参数如果是单 key,那么 Redis 就返冋这个 key 的所有元素
sinterstore des key1 key2 
先按 sinter 命令的规则,找出 key1 和 key2 两个集合的交集,然后保存到 des 中

sismember key member
判断 member 是否键为 key 的集合的成员
如果是返回 1,否则返回 0
smembers key
返回集合所有成员
如果数据量大,需要考虑迭代遍历的问题
smove src des member 
将成员 member 从集合 src 迁移到集合 des 中

spop key
随机弹出集合的一个元素
注意其随机性,因为集合是无序的
srandmember key [count]
随机返回集合中一个或者多个元素,count 为限制返回总数,如果 count 为负数,则先求其绝对值 
count 为整数,如果不填默认为 1,如果 count 大于等于集合总数,则返回整个集合
srem key member1[member2......]
移除集合中的元素,可以是多个元素
对于很大的集合可以通过它删除部分元素,避免删除大量数据引发 Redis 停顿
sunion key1 [key2]
求两个集合的并集
参数如果是单 key,那么 Redis 就返回这个 key 的所有元素
sunionstore des key1 key2
先执行 sunion 命令求出并集,然后保存到键为 des 的集合中

表 1 中命令的前缀都包含了一个 s,用来表达这是集合的命令,集合是无序的,并且支持并集、交集和差集的运算,下面通过命令行客户端来演示这些命令,如图 1 所示。
图 1