目录
一、简介
Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。集合中最大的成员数为 2^32 - 1 (4294967295, 每个集合可存储40多亿个成员)。
下面通过一张表格列出关于Set常用的操作命令:
命令 | 使用说明 |
sadd | 向集合中添加一个或者多个元素,如果元素已存在则忽略,只添加不存在的元素 |
smembers | 获取集合中的所有元素 |
sismember | 判断集合中是否包含某个元素 |
scard | 获取集合里面的元素个数 |
srem | 删除集合中元素 |
srandmember | 随机出几个数 |
spop | 随机出栈 |
smove | 将元素从一个集合移动到另一个集合中 |
sdiff | 返回两个set集合之间的差集 |
sinter | 返回两个set集合之间的交集 |
sunion | 返回两个set集合之间的并集 |
二、使用详解
【a】sadd/smembers/sismember
- sadd:向集合中添加一个或者多个元素,如果元素已存在则忽略,即只添加不存在的元素;
- smembers:获取集合中的所有元素;
- sismember:判断集合中是否包含某个元素;
【b】scard
- scard:获取集合里面的元素个数;
【c】srem
- srem:删除集合中元素,注意如果移除的元素不存在,返回0,删除成功返回1
【d】srandmember
- srandmember:随机出几个数,指定随机返回的元素的个数,如果count大于集合中的个数,则返回所有的元素。负数的话取绝对值;
【e】spop
- spop: 随机出栈(spop会将获取的元素移除而srandmember不会移除元素);
【f】smove
- smove:将元素从一个集合移动到另一个集合中;
【g】差集:sdiff / 交集:sinter / 并集:sunion
- sdiff:返回两个set集合之间的差集;
- sinter:返回两个set集合之间的交集;
- sunion:返回两个set集合之间的并集;
三、总结
以上就是关于Set无序列表相关命令的学习总结,如有不对之处还望指正,相互学习,共同进步。