对象
2016-05-25 16:55
162 查看
Redis 用到的所有主要数据结构:简单动态字符串(SDS)、双端链表、字典、压缩列表、整数集合, 等等。
Redis 并没有直接使用这些数据结构来实现 键值对数据库, 而是基于这些数据结构创建了一个对象系统,包含字符串对象、列表对象、哈希对象、集合对象和有序集合对象这五种类型的对象, 每种对象都用到了至少一种我们前面所介绍的数据结构。
除此之外, Redis 的对象系统还实现了基于引用计数技术的内存回收机制: 当程序不再使用某个对象的时候, 这个对象所占用的内存就会被自动释放; 另外, Redis 还通过引用计数技术实现了对象共享机制, 这一机制可以在适当的条件下, 通过让多个数据库键共享同一个对象来节约内存。
最后, Redis 的对象带有访问时间记录信息, 该信息可以用于计算数据库键的空转时长, 在服务器启用了 maxmemory 功能的情况下, 空转时长较大的那些键可能会优先被服务器删除。
Redis 中的每个对象都由一个 redisObject 结构表示, 该结构中和保存数据有关的三个属性分别是 type 属性、 encoding 属性和 ptr 属性:
对象 对象type属性的值 TYPE 命令的输出
字符串对象 REDIS_STRING “string”
列表对象 REDIS_LIST “list”
哈希对象 REDIS_HASH “hash”
集合对象 REDIS_SET “set”
有序集合对象 REDIS_ZSET “zset”
Redis 并没有直接使用这些数据结构来实现 键值对数据库, 而是基于这些数据结构创建了一个对象系统,包含字符串对象、列表对象、哈希对象、集合对象和有序集合对象这五种类型的对象, 每种对象都用到了至少一种我们前面所介绍的数据结构。
除此之外, Redis 的对象系统还实现了基于引用计数技术的内存回收机制: 当程序不再使用某个对象的时候, 这个对象所占用的内存就会被自动释放; 另外, Redis 还通过引用计数技术实现了对象共享机制, 这一机制可以在适当的条件下, 通过让多个数据库键共享同一个对象来节约内存。
最后, Redis 的对象带有访问时间记录信息, 该信息可以用于计算数据库键的空转时长, 在服务器启用了 maxmemory 功能的情况下, 空转时长较大的那些键可能会优先被服务器删除。
Redis 中的每个对象都由一个 redisObject 结构表示, 该结构中和保存数据有关的三个属性分别是 type 属性、 encoding 属性和 ptr 属性:
typedef struct redisObject { // 类型 unsigned type:4; // 编码 unsigned encoding:4; // 对象最后一次被访问的时间 unsigned lru:REDIS_LRU_BITS; /* lru time (relative to server.lruclock) */ // 引用计数 int refcount; // 指向实际值的指针 void *ptr; } robj;
对象 对象type属性的值 TYPE 命令的输出
字符串对象 REDIS_STRING “string”
列表对象 REDIS_LIST “list”
哈希对象 REDIS_HASH “hash”
集合对象 REDIS_SET “set”
有序集合对象 REDIS_ZSET “zset”
1、字符串对象
详见:http://redisbook.com/preview/object/string.html2、列表对象
详见:http://redisbook.com/preview/object/list.html3、hash对象
详见:http://redisbook.com/preview/object/hash.html相关文章推荐
- Codeforces Round #320 (Div. 1) [Bayan Thanks-Round] -- B. "Or" Game (容斥定理)
- 基于HTTP在互联网传输敏感数据的消息摘要、签名与加密方案
- View绘制1-工具类
- 五个知识体系之-每天一段代码
- PAT 天梯赛 L2-004 这是二叉搜索树吗?
- Ubuntu下Redis Desktop Manager的安装和使用
- C++回调函数简析
- Android-onInterceptTouchEvent()和onTouchEvent()总结
- 设计模式之工厂方法模式(C++实现)
- 【转载】sql 如何判断一个表是否存在
- 自定义动画animate
- C++:数据的共享与保护
- 安卓编程函数详解(不定期更新)
- c语言进阶之路----关于函数指针的个人心得
- Sudoku Solver
- Java Web程序中利用Spring框架返回JSON格式的日期
- final关键字
- 真机调试总体概述
- highcharter R语言
- chm内容显示为空白的处理方法