【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 增量迭代集合中的成员
相关推荐
IT策士3 小时前
Redis 从入门到精通:事务与 Lua 脚本
redis·junit·lua
胡小禾8 小时前
Redis哨兵模式下主从同步的偏差
数据库·redis·缓存
zzqssliu8 小时前
Taocarts接口限流实操:基于Redis实现API防刷与流量管控
数据库·redis·缓存
啦啦啦啦啦zzzz8 小时前
redis的持久化操作和主从复制与集群的关系及其应用
数据库·redis
IT策士8 小时前
Redis 从入门到精通:分片之道 —— Redis Cluster
数据库·redis·缓存
AOwhisky9 小时前
学习自测与解析:Redis系列第一期与第二期核心知识点详解
运维·数据库·redis·学习·云计算
Java爱好狂.9 小时前
阿里1658页2026最新Java面试题总结(含答案)
数据库·redis·程序员·java面试·java面试题·java编程·java八股文
布朗克16810 小时前
40 Redis与微服务入门
java·数据库·redis·微服务
北极星日淘10 小时前
Python爬虫断点续爬实战|基于Redis实现日淘商品增量抓取(解决重启全量重爬问题)
redis·爬虫·python
IT策士10 小时前
Redis 从入门到精通:Redis Sentinel 哨兵
数据库·redis·sentinel