【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 增量迭代集合中的成员
相关推荐
莫晓燚10 小时前
双机部署若依 (RuoYi‑Vue) 传统环境部署---实战
linux·运维·数据库·redis·mysql·nginx·ruoyi
夕除11 小时前
redis--resp
redis
莫晓燚11 小时前
搭建Redis 主从复制---实战
数据库·redis·缓存
IT规划师14 小时前
Redis 数据类型全解 - List:用对是队列用错是灾难(二)
redis·消息队列·.net
重生之我是Java开发战士16 小时前
【Redis】Java & JavaSpring 客户端
java·redis·bootstrap
是程序喵呀17 小时前
Redis实现持久化
数据库·redis·缓存
余槐i17 小时前
PostgreSQL 加索引后查询反而更慢:优化器弃用索引的 3 种情形
spring boot·redis·mysql·postgresql·事务
我不会起名字32217 小时前
Redis 从 0 到 1(十三):分布式锁被误删、锁不住?Go 无 Lua 实现 3 级防御
redis·go·分布式锁·watch·setnx
草莓熊Lotso17 小时前
【C++ 基于微服务的即时通讯系统】网关基建:cpp-httplib 与 WebSocketpp 从入门到实战
linux·开发语言·数据库·c++·redis·微服务·云原生