redis
荣兄2016
2018.6毕业,目前就职于杭州一家电商公司
展开
-
Redis链表对象
概述 redis中对链表的使用比较广泛,比如用于链表键,发布与订阅,服务器中用于保存客户端的状态信息 链表节点的数据结构 前置节点 后置节点 节点值 list 表头节点 表尾节点 节点数 复制函数dup() 释放函数free() match()函数 redis链表的特点 双端 无环 带表头和表尾节点 长度计数器 O(1)复杂度 多态 可以保存不同类型的值 ...原创 2018-11-19 21:42:08 · 129 阅读 · 0 评论 -
Redis字典对象
Redis 字典对象 字典对象,可以对应java中的map 即保存key-value键值对的一类对象 set k1 v1 在执行完上述命令后就在数据库中产生了一个键为 k1 值为 v1的键值对 字典实现 哈希表 数组 size 掩码 已用数量 哈希表节点 key value next指针 链表 字典 type dictType 计算哈希值 复制键 复制值 对比键 销毁键...原创 2018-11-22 22:03:43 · 203 阅读 · 0 评论 -
Redis的动态字符串对象SDS
字符串对象 简单动态字符串SDS 用途 键值对象 缓冲区 AOF缓冲区 客户端的输入缓冲区 定义 len 已使用的长度 free 未使用的字节数量 buf[] char数组 保存字符 注意 O(1)时间复杂度获取字符串长度 防止缓冲区溢出,会自动扩展空间。 内存溢出 内存泄漏 为了解决以上问题 采用未使用空间的两种优化策略 空间预分配 SDS修改后的长度小于1MB...原创 2018-11-18 14:10:25 · 99 阅读 · 0 评论 -
Redis整数集合
Redis 整数集合 概述 整数集合intset是集合键的底层实现之一,当一个集合只包含数值元素且数量不多时就会使用其作为集合键的底层实现 用于保存int16_t,int32_t,int64_t,不会重复 数据结构 encoding 编码方式 length 元素数量 contents[] 保存元素的数组,数组保存的类型取决于encoding属性,从小到大顺序排列 升级 当要向整数集...原创 2018-11-25 21:34:15 · 137 阅读 · 0 评论 -
Redis跳跃表
Redis 跳跃表 概述 跳跃表skiplist,是一种有序的数据结构,通过在每个节点中维持多个指向其他节点的指针,达到快速访问的目的。 时间复杂度 平均O(logn) 最坏O(n) 因为大部分情况下效率与平衡树媲美,并且实现方式更为简单,故不少程序使用此数据结构代替平衡树。 redis中使用跳表作为有序集合的底层实现。另外一个被用到的地方就是在集群节点中当作内部数据结构 实现 z...原创 2018-11-24 17:21:14 · 132 阅读 · 0 评论 -
Redis压缩列表
Redis压缩列表 概述 压缩列表 ziplist 是列表键和哈希键的底层实现之一。 为了节约内存而开发 构成 zlbytes 占用字节数 ztail 头尾的偏移量 zllen 节点数量 entryX 列表节点 encoding 数据类型及长度 字节数组 1,2,5字节 最高位00,01,10 整数 最高位11开头 content 保存节点...原创 2018-11-29 20:00:19 · 159 阅读 · 0 评论