【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] 增量迭代集合中的成员
相关推荐
知我Deja_Vu5 天前
redisCommonHelper.generateCode(“GROUP“),Redis 生成码方法
数据库·redis·缓存
Charlie_lll5 天前
Redis脑裂问题处理——基于min-replicas-to-write配置
redis·后端
奇点爆破XC5 天前
Redis迁移
数据库·redis·bootstrap
断手当码农5 天前
Redis 实现分布式锁的三种方式
数据库·redis·分布式
菜鸟小九5 天前
redis原理篇(基本数据结构)
数据结构·数据库·redis
没有bug.的程序员5 天前
电商秒杀系统深度进阶:高并发流量建模、库存零超卖内核与 Redis+MQ 闭环
数据库·redis·缓存·高并发·电商秒杀·流量建模·库存零超卖
菜鸟小九5 天前
redis原理篇(五种数据结构)
数据结构·数据库·redis
初次攀爬者5 天前
Redis分布式锁实现的三种方式-基于setnx,lua脚本和Redisson
redis·分布式·后端
June`5 天前
Redis缓存深度解析:20%数据应对80%请求
数据库·redis
m0_738120725 天前
应急响应——Solar月赛emergency靶场溯源过程(内含靶机下载以及流量分析)
java·开发语言·网络·redis·web安全·系统安全