RedisSet(4)

编程

存储(实现)原理

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

KV怎么存储set的元素?key就是元素的值,value为null。

如果元素个数超过512个,也会用hashtable存储,可通过配置调整。

redis.conf

set-max-intset-entries 512

127.0.0.1:6379> sadd lset 1 2 3 3 4 5 6 7

(integer) 7

127.0.0.1:6379> object encoding lset

"intset"

127.0.0.1:6379> sadd strset a b c d e f f

(integer) 6

127.0.0.1:6379> object encoding strset

"hashtable"

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

命令

说明

sdiff key1 [key2]

两个set集合取差集

sinter key1 [key2]

两个set集合取交集

srandmember key [count]

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

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

以上是 RedisSet(4) 的全部内容, 来源链接: utcz.com/z/514299.html

回到顶部