Redis的五种数据结构的内部编码
2019-10-09 20:28
134 查看
实际上每种数据结构都有自己底层的内部编码实现,而且是多种实现,这样Redis会在合适的场景选择合适的内部编码。
可以看到每种数据结构都有两种以上的内部编码实现,例如string数据结构就包含了raw、int和embstr三种内部编码。
同时,有些内部编码可以作为多种外部数据结构的内部实现,例如ziplist就是hash、list和zset共有的内部编码。
我们可以通过object encoding命令查询内部编码:
127.0.0.1:6379> set set:1 hello OK 127.0.0.1:6379> object encoding set:1 "embstr" 127.0.0.1:6379> hset user:1 name kebi (integer) 1 127.0.0.1:6379> object encoding user:1 "ziplist"
Redis会根据当前值的类型和长度决定使用内部编码实现,Redis这样设计有两个好处:
第一,可以改进内部编码,而对外的数据结构和命令没有影响,这样一旦开发开发出优秀的内部编码,无需改动外部数据结构和命令。
第二,多种内部编码实现可以在不同场景下发挥各自的优势。例如ziplist比较节省内存,但是在列表元素比较多的情况下,性能会有所下降,
这时候Redis会根据配置选项将列表类型的内部实现转换为linkedlist。
(window.slotbydup = window.slotbydup || []).push({ id: "u5894387", container: "_0hv0l6ey3zro", async: true });相关文章推荐
- 3.2 Redis的五种数据结构的内部编码
- Redis的五种数据结构的内部编码
- Redis数据结构和内部编码--字符串
- redis的key的数据结构、内部编码和单线程架构
- Redis数据结构和内部编码--列表(list)
- redis的数据结构和内部编码
- Redis5种数据结构的内部编码及应用场景和基本命令
- Redis数据结构和内部编码--哈希(hash)
- Redis数据结构和内部编码--集合(Set)
- Redis数据结构和内部编码--有序集合(SortedSet)
- Redis五种数据结构简介
- 【Redis】redis 五种数据结构详解(string,list,set,zset,hash)
- redis的五种数据结构
- Redis五种数据结构(Windows Server)
- Redis 五种数据结构
- redis五种数据结构原理学习解析
- redis 五种数据结构详解(string,list,set,zset,hash)
- Redis内部数据结构总结(2)dict
- Redis内部数据结构总结(1)sds和robj
- Redis内部数据结构详解(1)——dict