Redis Set (4)

存储类型

String 类型的无序集合,最大存储数量2^32-1(40亿左右)

存储(实现)原理

Redis用intset或hashtable存储set。如果元素都是整数类型,就用inset存储。如果不是整数类型,就用hashtable(数组+链表的存来储结构)。在这里就不再重复贴图。

KV怎么存储set的元素?key就是元素的值,value为null。
如果元素个数超过512个,也会用hashtable存储,可通过配置调整。

redis.conf

set-max-intset-entries 512

1127.0.0.1:6379> sadd lset 1 2 3 3 4 5 6 7 2(integer) 7 3127.0.0.1:6379> object encoding lset 4"intset" 5127.0.0.1:6379> sadd strset a b c d e f f 6(integer) 6 7127.0.0.1:6379> object encoding strset 8"hashtable"

Set集合类型有一些集合的一些特有命令,可以结合特殊场景具体使用。比如:

命令

说明

sdiff key1 [key2]

两个set集合取差集

sinter key1 [key2]

两个set集合取交集

srandmember key [count]

返回集合中一个或多个随机数

命令集合之后统一整理,不再这里赘述了

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

Redis入门

Redis1、Redis概述Redis介绍Redis是一个开源的keyvalue存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset–有序集合)和

Nginx + lua +[memcached,redis]

精品案例1、Nginxluamemcached,redis实现网站灰度发布2、分库分表/基于Leaf组件实现的全球唯一ID(非UUID)3、Redis独立数据监控,实现订单超时操作/MQ死信操作SelectPollEpollReactor模型4、分布式任务调试Quartz应用