redis数据类型 - set类型

本文深入探讨了Redis Set 数据结构的基本操作与应用场景,包括添加、删除元素,集合的并集、交集、差集等操作,以及如何利用这些操作实现sns中的好友推荐和blog的tag功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

set 是集合,和我们数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合求交并差等操作,操作中 key 理解为集合的名字。值不能重复。

Redis set string 类型的无序集合。

set 元素最大可以包含(2 32 次方)个元素。

关于 set 集合类型除了基本的添加删除操作,其他有用的操作还包含集合的取并集(union),交集(intersection),差集(difference)通过这些操作可以很容易的实现 sns 中的好友推荐和 blog tag 功能。 


sadd 向名称为key的set中添加元素:

sadd myset1 a
sadd myset1 b
sadd myset1 a	#添加失败,已存在
smembers 查看集合:
smembers myset1
srem 删除名称为key的set中的元素member:
srem myset1 b
spop 随机返回并删除名称为key的set中的一个元素(用来抽奖很方便)

sdiff 差集:
sdiff myset2 myset3

sdiffstore 返回差集,并将结果存为另一个 key sadd myset5 1
sadd myset5 2
sadd myset5 4
sadd myset6 2
sadd myset6 3
sdiffstore newset myset5 myset6
将只存在于 myset5,不在 myset6 中的成员,另存为 newset 中
如果已存在 newset,则先清空 newset smembers newset
结果是: 
1) "1"
2) "4"


sinter 交集
sadd myset5 1
sadd myset5 2
sadd myset5 4
sadd myset6 2
sadd myset6 3
sinter myset5 myset6
返回 2


sinterstore 返回所有给定 key 的交集,并将结果存为另一个 key sinterstore newset myset5 myset6
smembers newset
结果:
1) "2" 


sunion 并集 
sunion myset5 myset6


sunionstore 返回所有给定 key 的并集,并将结果存为另一个 key 
sunionstore newset myset5 myset6
查看结果 myset5 myset6 的并集被保存到 newset 中 
smembers newset


smove移动
sadd myset7 a
sadd myset7 b
smove myset7 myset8 a #将set7中的a ,移到myset8中 
smembers myset7
smembers myset8


scard 返回名 set 集合的元素个数 
scard myset5


sismember is member 测试元素是否在某一个 set 集合中 sadd myset9 a
sadd myset9 b
sismember myset9 b
sismember myset9 c


srandmember  随机返回一个名称为key的set 的一个元素,但是不删除元素
srandmember myset9




-------------------------------------------- 
sorted set 
--------------------------------------------
sorted set 是 set 的一个升级版本,它在 set 的基础上增加了一个顺序属性, 这一属性在添加修改元素的时候可以指定,每次指定后,
zset 会自动重新按新的值调整顺序。
和 set 一样 sorted set 也是 string 类型元素的集合, 不同的是每个元素都会关联一个 double 类型的 score


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值