Redis 集合(Set)

Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

实例

  1. redis 127.0.0.1:6379> SADD w3ckey redis
  2. (integer) 1
  3. redis 127.0.0.1:6379> SADD w3ckey mongodb
  4. (integer) 1
  5. redis 127.0.0.1:6379> SADD w3ckey mysql
  6. (integer) 1
  7. redis 127.0.0.1:6379> SADD w3ckey mysql
  8. (integer) 0
  9. redis 127.0.0.1:6379> SMEMBERS w3ckey
  10. 1) "mysql"
  11. 2) "mongodb"
  12. 3) "redis"

在以上实例中我们通过 SADD 命令向名为 w3ckey 的集合插入的三个元素。


Redis 集合命令

下表列出了 Redis 集合基本命令:

序号 命令及描述
1 SADD key member1 [member2] 向集合添加一个或多个成员
2 SCARD key 获取集合的成员数
3 SDIFF key1 [key2] 返回给定所有集合的差集
4 SDIFFSTORE destination key1 [key2] 返回给定所有集合的差集并存储在 destination 中
5 SINTER key1 [key2] 返回给定所有集合的交集
6 SINTERSTORE destination key1 [key2] 返回给定所有集合的交集并存储在 destination 中
7 SISMEMBER key member 判断 member 元素是否是集合 key 的成员
8 SMEMBERS key 返回集合中的所有成员
9 SMOVE source destination member 将 member 元素从 source 集合移动到 destination 集合
10 SPOP key 移除并返回集合中的一个随机元素
11 SRANDMEMBER key [count] 返回集合中一个或多个随机数
12 SREM key member1 [member2] 移除集合中一个或多个成员
13 SUNION key1 [key2] 返回所有给定集合的并集
14 SUNIONSTORE destination key1 [key2] 所有给定集合的并集存储在 destination 集合中
15 SSCAN key cursor [MATCH pattern] [COUNT count] 迭代集合中的元素
时间: 2024-12-27 14:04:48

Redis 集合(Set)的相关文章

Redis 集合操作

[Redis 集合操作] 1.SCARD key 返回集合 key 的基数(集合中元素的数量). 2.SDIFFSTORE destination key [key ...] 这个命令的作用和 SDIFF 类似,但它将结果保存到 destination 集合,而不是简单地返回结果集. 如果 destination 集合已经存在,则将其覆盖. destination 可以是 key 本身. 3.SINTER key [key ...] 返回一个集合的全部成员,该集合是所有给定集合的交集. 不存在的

《Redis - 集合对象》

一:概述 - Redis 源码版本为3.0.0. - Redis 集合命令请戳. - OBJECT ENCODING key 查看数据底层类型实现. 二:集合对象的底层实现 - 编码方式 - 字符串对象共有两种编码方式  intset(整数集合) / hashtable(字典) - 编码方式的选择 -  当列表对象 元素都是整数/元素数量小于512 则使用 intset(set-max-intset-entries) . - 不满足条件则使用 hashtable. - inset 编码方式 - 

C#Redis集合set

快过年了,任务也没那么多了,可以有时间了解下其他的内容,今天看到一个博客关于weex的,觉得还挺实用的,等有空了可以了解了解.不过还是把今年的目标要完成.今天继续redis. 一.前戏 在Redis中,我们可以将Set类型看作为没有排序的字符集合,和List类型一样,我们也可以在该类型的数据值上执行添加.删除或判断某一元素是否存在等操作.需要说明的是,这些操作的时间复杂度为O(1),即常量时间内完成次操作.Set可包含的最大元素数量是4294967295.      和List类型不同的是,Se

Redis集合操作

Redis的集合以无序的形式存储多个各不相同的元素 (常用的集合命令) SADD : SADD key-name item [item ...]----------将一个或多个元素添加到集合里,并返回添加的元素数量(重复的元素不会被添加) SREM : SREM key-name  item [item ..]---------从一个集合里面移除一个或多个元素,并返回被移除的元素数量 SISMEMBER :  SISMEMBER key-name item -------检查元素item是否存在

redis集合

存值 r1 = conn.sadd('urls', 'www.bing.com') r2 = conn.sadd('urls', 'www.baidu.com') 若要存入集合的值已存在(redis),则返回值r1或r2是 0 print(conn.smembers('urls')) # 获取urls对应的集合 原文地址:https://www.cnblogs.com/wt7018/p/11756330.html

Redis集合-Set

sadd 向一个Set中添加数据 127.0.0.1:6379> sadd set01 1 1 2 2 3 3 (integer) 3127.0.0.1:6379> SMEMBERS set01 (使用semebers 取出Set中所有数据)1) "1"2) "2"3) "3"127.0.0.1:6379> sismember 判断一个set中是否包含某个值 127.0.0.1:6379> SISMEMBER set01

Redis有序集合

Redis有序集合类似Redis集合存储在设定值唯一性.不同的是,一个有序集合的每个成员带有分数,用于以便采取有序set命令,从最小的到最大的分数有关. Redis 有序set添加,删除和测试中的O(1)的存在成员(固定时间,无论里面包含的元素集合的数量).列表的最大长度为232- 1元素(4294967295,超过4十亿每个元素的集合). 例子 redis 127.0.0.1:6379> ZADD tutorials 1 redis (integer) 1 redis 127.0.0.1:63

Redis 设计与实现(第六章) -- 整数集合(intset)

概述 1.intset概述 2.intset实现 3.intset升级 intset概述 整数集合是Redis集合键的底层实现之一,当值都为整数时,redis就会选择整数集合作为底层实现. 可以保存int16_t,int32_t,int64_t类型的整数值,并且集合中不会出现重复元素. intset实现 先看下intset的数据结构: typedef struct intset { uint32_t encoding; //encoding方式 uint32_t length; //长度 int

分布式缓存技术redis学习系列(二)——详细讲解redis数据结构(内存模型)以及常用命令

Redis数据类型 与Memcached仅支持简单的key-value结构的数据记录不同,Redis支持的数据类型要丰富得多,常用的数据类型主要有五种:String.List.Hash.Set和Sorted Set. Redis数据类型内存结构分析 Redis内部使用一个redisObject对象来表示所有的key和value.redisObject主要的信息包括数据类型(type).编码方式(encoding).数据指针(ptr).虚拟内存(vm)等.type代表一个value对象具体是何种数