【Redis】set类型

目录

1、介绍

Redis的set集合类型是一种无序且元素唯一的数据结构,支持高效的成员判断、集合运算和随机访问。

2、底层实现

【1】整数集合

适用场景

当集合中所有的元素都是整数,且元素数量较少时(默认配置为 set-max-intset-entries 512)

实现特点

1、连续内存存储,类似数组,支持二分法查找

2、自动升级,当插入非整数或超出当前整数类型范围时,会转化为哈希表

【2】哈希表

适用场景

元素包含非整数,或元素数量超过intset阈值

实现特定

1、使用Redis的通用链式哈希结构,键为元素值,值为NULL。

2、自动扩缩容,通过rehash机制平衡性能与内存占用。

3、常用指令

命令 语法 作用
SADD SADD key member member ... 向集合key添加一个或多个成员,已存在的成员会被忽略
SREM SREM key member member ... 从集合key移除一个或多个成员,不存在的成员会被忽略
SMEMBERS SMEMBERS key 返回集合key中所有成员(无序)
SISMEMBER SISMEMBER key member 判断member是否是集合key的成员,返回1(存在)或0(不存在)
SCARD SCARD key 返回集合key的成员数量
SPOP SPOP key count 随机移除并返回集合key中的一个或多个成员(默认1个)
SRANDMEMBER SRANDMEMBER key count 随机返回集合key中的一个或多个成员
SMOVE SMOVE source dest member 将member从source集合移动到dest集合(原子操作)
SINTER SINTER key key ... 返回多个集合的交集
SUNION SUNION key key ... 返回多个集合的并集
SDIFF SDIFF key key ... 返回第一个集合与其它集合的差值(即key1有而其他集合没有的成员)
SINTERSTORE SINTERSTORE dest key key ... 计算多个集合的交集并存储到dest
SUNIONSTORE SUNIONSTORE dest key key ... 计算多个结合的并集并存储到dest
SDIFFSTORE SDIFFSTORE dest key key ... 计算多个集合的差集并存储到dest
SSCAN SSCAN key cursor MATCH pattern COUNT count 增量迭代集合中的成员
相关推荐
linweidong40 分钟前
Redis 集群故障排查与修复实战:从 Connection refused 到内存打满的七个现场
运维·数据库·redis·缓存·redis集群·运维面经·实施面经
用户6222884048191 小时前
Redis 内存管理与过期淘汰策略:从 maxmemory 到 LRU / LFU,一篇讲透
java·redis
Sand(ContextGate)2 小时前
从零搭建电商智能导购 Agent:LangGraph 编排 + 三层记忆 + 熔断降级 + 生产部署全链路实战
redis·agent·fastapi·电商·chromadb·langgraph·智能导购
bksczm3 小时前
Redis基础篇之初识分布式
数据库·redis·分布式
jyOverQ3 小时前
Redis 主从复制、Sentinel 和 Cluster 到底有什么区别?
java·redis·sentinel
仍然.11 小时前
Redis---缓存
数据库·redis·缓存
仍然.14 小时前
Redis---分布式锁
数据库·redis·分布式
Codiggerworld15 小时前
Redis 正式接入 AI:当“最懂速度的数据库“开始解决“记忆问题“
数据库·人工智能·redis
白露与泡影15 小时前
Redis 正式接入 AI:当“最懂速度的数据库“开始解决“记忆问题“
数据库·人工智能·redis
我不会插花弄玉15 小时前
3.通用命令【由浅入深-redis】
数据库·redis·bootstrap