总体原则:key的名称不易过长,剩下的所有 能用纯数字表示的尽量用

Redis的每一个键值都是用一个redisObject结构体表示的
结构体中有:
    键值的类型(string/list/hash/set/zset)
    内部编码方式(下面重点讲)
    该键值被多少次引用
    内容指针

若内容指针指的是字符串,则内容指针指向sdshdr的结构体
    (该结构体中 字符串长度、buf中剩余空间、buf字符数组[存字符串])
存储键值空间 = redisObject大小 + sdshfr大小 + 字符串大小

若内容指针指的是数字,则内容指针直接就是数字
存储键值空间 = redisObject大小
 
redis内部预先存有键值为0~9999的数字键值

字符串(编码方式RAW、INT):
RAW redisObject内容指针指“纯字符串”
INT redisObject内容指针指“数字”

散列表(两种编码方式 HT ZIPLIST)
配置文件 hash-max-ziplist-entries 512
         hash-max-ziplist-value 64
当键值的字段个数小于第一个值且字段名、字段值的字节数小于第二个值时用ZIPLIST
ZIPLIST:牺牲“读性能”(O(n))换取极高的“空间利用率”,适合表在较小时使用
HT:字段名和字段值 都是 redisObject ;读性能为O(1)

列表(编码方式 LinkedList ziplist)
ziplist:同上
LinkedList:每个节点都是redisObject的双向列表

集合(编码方式 HT INTSET)
INTSET:集合中全是数字,且数字的个数小于指定值时使用
            每个数字占位可变的动态数组
HT:字段值为nil,在集合缩小时,不会倒退到INSET

有序集合(编码方式 SkipList ziplist)
ziplist:同上
SkipList:(由散列表和跳跃表组成)
        散列表存储元素、分数映射
        跳跃表  排序

最新文章

  1. 通过JavaScript原型链理解基于原型的编程
  2. ASP.NET WebAPI 14 仿写Filter管道
  3. centos 下使用locate命令
  4. 51nod1421 最大MOD值
  5. iOS 火星坐标相关整理及解决方案汇总(转)
  6. [jQuery] Cannot read property ‘msie’ of undefined错误的解决方法
  7. 转:Google论文之一----Bigtable学习翻译
  8. javascript---jquery (1事件)
  9. RabbitMQ入门-初识RabbitMQ
  10. Java面向对象 包
  11. Codeforces #Round 785(Div.2)
  12. python while条件和if判断的总练习
  13. 第十二届湖南省赛 (B - 有向无环图 )(拓扑排序+思维)好题
  14. linux-shell系列1-ip
  15. vue分页问题参考 感谢
  16. MVC扩展HttpHandler
  17. kubernetes 创建nginx 容器
  18. python爬虫之urlError异常处理
  19. 浅析Java源码之HashMap外传-红黑树Treenode(已鸽)
  20. OverAPI.com – 史上最全的开发人员在线速查手册

热门文章

  1. 视频演示eworkflow集成定制aspx页面的过程
  2. Unreal Engine 4 一些小技巧或提示
  3. 记录一下emacs在window下的配置过程
  4. 【逐步完善】MySql索引相关
  5. Linux下的shell编程(三)BY 四喜三顺
  6. UEFI+GPT引导实践篇(一):切换到UEFI启动,准备安装介质
  7. http请求提交cookie
  8. IO操作概念。同步、异步、阻塞、非阻塞
  9. ArcGIS api fo silverlight学习一(silverlight加载GeoServer发布的WMS地图)
  10. PCA降纬一步一步