前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis 数据类型及操作-集合

Redis 数据类型及操作-集合

原创
作者头像
玖叁叁
发布2023-04-15 14:36:53
1640
发布2023-04-15 14:36:53
举报
文章被收录于专栏:玖叁叁玖叁叁

三、集合

集合(Set)是Redis提供的一种无序、不重复的数据结构,常用于存储多个元素之间的关系,如朋友列表、标签等。集合可以进行交、并、差等集合运算,也可以判断某个元素是否存在于集合中。集合中存储的元素必须是字符串类型的。

3.1. SADD

SADD命令用于向集合中添加一个或多个新元素,语法为:

代码语言:javascript
复制
SADD key member [member ...]

其中,key为集合的键名,member为要添加到集合中的新元素。可以同时添加多个元素,每个元素之间用空格分隔。如果添加的元素已经存在于集合中,则不会重复添加。

例如,要向键名为set的集合中添加元素abc,可以使用以下命令:

代码语言:javascript
复制
SADD set a b c

3.2. SCARD

SCARD命令用于返回集合中元素的数量,语法为:

代码语言:javascript
复制
SCARD key

其中,key为集合的键名。

例如,要查询键名为set的集合中元素的数量,可以使用以下命令:

代码语言:javascript
复制
SCARD set

3.3. SISMEMBER

SISMEMBER命令用于判断指定元素是否存在于集合中,如果存在则返回1,否则返回0,语法为:

代码语言:javascript
复制
SISMEMBER key member

其中,key为集合的键名,member为要判断的元素。

例如,要判断键名为set的集合中是否存在元素a,可以使用以下命令:

代码语言:javascript
复制
SISMEMBER set a

3.4. SMEMBERS

SMEMBERS命令用于返回集合中的所有元素,语法为:

代码语言:javascript
复制
SMEMBERS key

其中,key为集合的键名。

例如,要查询键名为set的集合中的所有元素,可以使用以下命令:

代码语言:javascript
复制
SMEMBERS set

3.5. SPOP

SPOP命令用于随机弹出集合中的一个元素,并返回该元素的值,语法为:

代码语言:javascript
复制
SPOP key

其中,key为集合的键名。

例如,要从键名为set的集合中随机弹出一个元素,可以使用以下命令:

代码语言:javascript
复制
SPOP set

3.6. SRANDMEMBER

SRANDMEMBER命令用于随机返回集合中的一个元素,语法为:

代码语言:javascript
复制
SRANDMEMBER key [count]

其中,key为集合的键名,count为返回元素的数量,如果不指定该参数,则只返回一个元素。如果count为正数,则返回的元素不会重复;如果count为负数,则可能会重复返回元素。

例如,要从键名为set的集合中随机返回两个不重复的元素,可以使用以下命令:

代码语言:javascript
复制
SRANDMEMBER set 2

3.7. SREM

SREM命令用于从集合中删除一个或多个元素,语法为:

代码语言:javascript
复制
SREM key member [member ...]

其中,key为集合的键名,member为要删除的元素。可以同时删除多个元素,每个元素之间用空格分隔。

例如,要从键名为set的集合中删除元素ab,可以使用以下命令:

代码语言:javascript
复制
SREM set a b

3.8. SUNION

SUNION命令用于返回多个集合的并集,语法为:

代码语言:javascript
复制
SUNION key [key ...]

其中,key为要求并集的集合的键名。

例如,要求键名为set1set2的两个集合的并集,可以使用以下命令:

代码语言:javascript
复制
SUNION set1 set2

3.9. SUNIONSTORE

SUNIONSTORE命令用于将多个集合的并集存储到一个新的集合中,语法为:

代码语言:javascript
复制
SUNIONSTORE destination key [key ...]

其中,destination为新集合的键名,key为要求并集的集合的键名。

例如,要将键名为set1set2的两个集合的并集存储到一个新的集合中,键名为set3,可以使用以下命令:

代码语言:javascript
复制
SUNIONSTORE set3 set1 set2

3.10. 集合数据类型示例

下面是一些常见的使用集合数据类型的场景和示例:

记录网站访客的IP地址

代码语言:javascript
复制
SADD visitors 192.168.1.1
SADD visitors 192.168.1.2
SADD visitors 192.168.1.3

统计每个用户的访问次数

代码语言:javascript
复制
SADD user1_pageview home
SADD user1_pageview products
SADD user2_pageview home
SADD user2_pageview about

存储用户标签

代码语言:javascript
复制
SADD user1_tags music
SADD user1_tags sports
SADD user1_tags movies
SADD user2_tags music
SADD user2_tags news

存储商品分类信息

代码语言:javascript
复制
SADD electronic_products mobile_phone
SADD electronic_products laptop
SADD clothing_shoes_shopping dress
SADD clothing_shoes_shopping shoes

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 三、集合
    • 3.1. SADD
      • 3.2. SCARD
        • 3.3. SISMEMBER
          • 3.4. SMEMBERS
            • 3.5. SPOP
              • 3.6. SRANDMEMBER
                • 3.7. SREM
                  • 3.8. SUNION
                    • 3.9. SUNIONSTORE
                      • 3.10. 集合数据类型示例
                        • 记录网站访客的IP地址
                          • 统计每个用户的访问次数
                            • 存储用户标签
                              • 存储商品分类信息
                              相关产品与服务
                              云数据库 Redis
                              腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档