浅谈redis数据结构之集合
1. 集合
集合(set)类型也是用来保存多个字符串元素,但和列表类型不一样的是,集合中不允许有重复元素,并且集合中的元素是无序的,不能通过索引下标获取元素。极限情况,一个集合最多可以存储2 ^ 32 - 1个元素。
假设集合user:1:follow包含着 "it"、"music"、"his"、"sports"四个元素,如下图所示:
Redis除了支持集合内的增删改查,同时还支持多个集合取交集、并集、差集。合理地使用好集合类型,能在实际开发中解决很多实际问题。
2. 相关命令
- 集合内的操作命令
- 集合间的操作命令
- 集合命令的时间复杂度
3. 内部编码
集合类型的内部编码有两种,如下表所示:
内部编码 | 说明 |
整数集合(intset) | 当集合中的元素都是整数且元素个数小于set-max-intset-entries配置(默认512个)时,Redis会选用intset来作为集合的内部实现,从而减少内存的使用。 |
哈希表(hashtable) | 当集合类型无法满足intset的条件时,Redis会使用hashtable作为集合的内部实现。 |
由于篇幅所限,这里就不掩饰元素个数超过默认配置的场景了,具体示例如下图所示:
4. 后续
本文介绍了Redis中的集合的一些基本命令,包括集合内部的操作命令和集合之间的操作命令,其次还介绍了集合的内部编码转换。
下面一篇文章会单独研究下以用户行为标签为主的应用场景,整理中.......
相关推荐
koushr 2020-11-12
zhangxiafll 2020-11-13
kikaylee 2020-10-31
范范 2020-10-28
MILemon 2020-10-22
hugebawu 2020-10-12
LauraRan 2020-09-28
shenwenjie 2020-09-24
omyrobin 2020-09-23
guangcheng 2020-09-22
qiangde 2020-09-13
hanyujianke 2020-08-18
晨曦之星 2020-08-14
xiesheng 2020-08-06
KAIrving 2020-08-02
xiesheng 2020-08-02
范范 2020-07-30
chenfei0 2020-07-30