深入了解Redis【九】对象及数据结构总结
引言
经过前几个文章的学习,大概了解了redis中用到的主要的数据结构:简单动态字符串、链表、字典、跳跃表、整数集合、压缩列表。
但是我们使用的时候并没有直接使用这些数据结构,而是基于这个封装出string、list、hash、set、zset五种对象类型。
1、redis对象的数据结构
1 | typedef struct redisObject { |
1.1、encoding
通过编码方式encoding来确定*ptr所指向的数据结构是什么。
1.2、refcount
对象数据结构中的引用计数refcount有两个作用:
- 内存回收
没有引用的时候就回收。 - 对象共享
可以让多个key指向同一个对象,节省内存。
1.3、lru
对象最后一次被访问的时间,当服务器内部不足时,空闲时间长的对象会被回收。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ClawHub的技术分享!