redis学习之九哈希对象
之前相关联的文章:
redis学习之一SDS
redis学习之二双端链表
redis学习之三字典
redis学习之四skiplist
redis学习之五ziplist
redis学习之六对象
redis学习之七字符串对象
redis学习之八列表对象
哈希对象的编码可以是ziplist或hashtable。当同时满足下面两个条件时使用ziplist编码,不满足时则使用hashtable。
- 保存的键和值的字符串长度都小于64字节。
- 保存的键值对数量小于512个。
当使用ziplist编码时有下面两个特点:
- 健值对作为两个节点是紧挨在一起的,健节点在前值节点紧随其后。
- 健节点放在ziplist表头方向,值节点放在ziplist表尾方向。
redis> HSET profile Name "Tom"
(integer) 1redis> HSET profile Age 18
(integer) 1
存储如下图:
文章图片
当使用hashtable编码时有下面两特点:
- hashtable里的每个键都是一个stringObject对象,对象里保存了键的内容。
- hashtable里的每个值都是一个stringObject对象,对象里保存了值的内容。
文章图片
(存储的格式是上面展示的,忽略里面具体的内容。。。)
【redis学习之九哈希对象】参考的文章有:
黄健宏的《Redis设计与实现》一书
推荐阅读
- 慢慢的美丽
- 开学第一天(下)
- 奔向你的城市
- 学无止境,人生还很长
- 由浅入深理解AOP
- “成长”读书社群招募
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- 每日一话(49)——一位清华教授在朋友圈给大学生的9条建议
- 小影写在2018九月开学季