【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 增量迭代集合中的成员
相关推荐
Rain的Java大神之路6 小时前
如何快速上传10G文件
java·spring boot·redis·后端·mysql·spring cloud·面试
Wang's Blog6 小时前
Java 接入Redis: 通用命令与键管理
java·服务器·redis
Wang's Blog6 小时前
Java 接入Redis: 列表集合与有序集合操作命令
java·服务器·redis
行百里er16 小时前
5 分钟跑起 Redis(Docker 版)
redis·后端·docker
福大大架构师每日一题16 小时前
redis 8.10.2发布:安全修复集中落地,事务 ACL、集群总线与模块稳定性全面加固
redis
Pioneer0000116 小时前
我用 Redis + 网关做多模型 API 路由:缓存命中率 95%+ 的工程实践
人工智能·redis·后端·缓存·性能优化·架构
Hui Baby18 小时前
Redis Streams 发布订阅
redis
hweiyu001 天前
Redis命令:MSETNX
redis·缓存
浅念-1 天前
Redis基础详解:单线程模型、String与Hash数据结构
服务器·数据库·redis·sql·mysql·nosql数据库·nosql
张某布响丸辣1 天前
附件下载的安全边界:路径白名单、NAS 哨兵文件与 Redis Lua 一次性令牌
java·redis·redis lua·nas哨兵