redis的数据结构和内部编码
2019-08-12 21:05
961 查看
版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)
数据结构
redis的数据类型分为:string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)
底层内部编码:
底层的内部编码实现,而且是多种实现,这样Redis会在合适的场景选择合适的内部编码,如下图所示。
每种数据结构都有两种以上的内部编码实现,例如list数据结构包含了linkedlist和ziplist两种内部编码。
内部编码:
键hello对应值的内部编码是embstr,键mylist对应值的内部编码是ziplist。Redis这样设计有两个好处:第一,可以改进内部编码,而对外的数据结构和命令没有影响,这样一旦开发出更优秀的内部编码,无需改动外部数据结构和命令,例如Redis3.2提供了quicklist,结合了ziplist和linkedlist两者的优势,为列表类型提供了一种更为优秀的内部编码实现,而对外部用户来说基本感知不到。第二,多种内部编码实现可以在不同场景下发挥各自的优势,例如ziplist比较节省内存,但是在列表元素比较多的情况下,性能会有所下降,这时候Redis会根据配置选项将列表类型的内部实现转换为linkedlist。
相关文章推荐
- Redis数据结构和内部编码--哈希(hash)
- Redis数据结构和内部编码--字符串
- 3.2 Redis的五种数据结构的内部编码
- Redis数据结构和内部编码--有序集合(SortedSet)
- redis的key的数据结构、内部编码和单线程架构
- Redis5种数据结构的内部编码及应用场景和基本命令
- Redis数据结构和内部编码--列表(list)
- Redis数据结构和内部编码--集合(Set)
- Redis的五种数据结构的内部编码
- Redis数据库各种数据结构的内部实现。
- Redis内部数据结构详解之简单动态字符串(sds)
- Redis内部数据结构详解之简单动态字符串(sds)
- 你真的懂redis的数据结构了吗?redis内部数据结构和外部数据结构揭秘
- Redis中的强大的数据结构跳跃表(skiplist)的内部详解及实际运用
- Redis内部数据结构详解之双向链表(linkedlist)
- redis内部数据结构深入浅出
- Redis内部数据结构详解之字典(dict)
- redisbook笔记——redis内部数据结构
- Redis内部数据结构总结(4)quicklist
- Redis内部数据结构详解(1)——dict