文档章节

Redis

小王哥
 小王哥
发布于 2016/06/05 23:02
字数 257
阅读 23
收藏 0

Redis 是高效的key-value缓存框架

内部实现:

1. SDS(Simple Dynamic String) 的数据结构

struts sdshdr{
    int len;
    int free;
    char buf[];
}

优势

  • 常数复杂度获取字符串长度
  • 消除缓冲区溢出
  • 减少字符串长度变化的内存重分配
  • 二进制安全

2. 链表

  • 双向链表
  • 无环链表(表头的前置节点为null,表尾后置节点为null)

3. 字典

  • 底层是hash表,每个字典有两个hash表,一个平时使用,一个rehash时使用
  • Hash算法是 MurmurHash2
  • 使用链地址法解决冲突,分配到同一个索引上的多个键值形成一个单向链表

4. 跳跃表(skiplist)

  • 查找性能堪比平衡树
  • 实现比平衡树简单
  • Author: WilliamPugh 的paper:<<Skip lists: A probabilistic Alternative to Balanced Trees >>
  • 在Redis中用于实现有序集合键,集群节点中用做内部数据结构

5. 整数集合 升级

6. ziplist

Redis数据库中的每个键值对的键和值都是一个对象

© 著作权归作者所有

下一篇: MySQL Basic
小王哥
粉丝 1
博文 19
码字总数 4879
作品 0
杭州
程序员
私信 提问

暂无文章

数据库

数据库架构 数据库架构可以分为存储文件系统和程序实例两大块,而程序实例根据不同的功能又可以分为如下小模块。 1550644570798 索引模块 常见的问题有: 为什么要使用索引 什么样的信息能成...

一只小青蛙
今天
4
0
PHP常用经典算法实现

<? //-------------------- // 基本数据结构算法 //-------------------- //二分查找(数组里查找某个元素) function bin_sch($array, $low, $high, $k){ if ( $low <= $high){ $mid = int......

半缘修道半缘君丶
昨天
5
0
GIL 已经被杀死了么?

本文原创并首发于公众号【Python猫】,未经授权,请勿转载。 原文地址:https://mp.weixin.qq.com/s/8KvQemz0SWq2hw-2aBPv2Q 花下猫语: Python 中最广为人诟病的一点,大概就是它的 GIL 了。...

豌豆花下猫
昨天
5
0
git commit message form

commit message一般包括3部分:Header、Body、Footer。 <type>(<scope>):<subject>blank line<body>blank line<footer> header是必需的,body、footer可以省略。 header中type、subject......

ninjaFrog
昨天
5
0
聊聊Elasticsearch的CircuitBreakerService

序 本文主要研究一下Elasticsearch的CircuitBreakerService CircuitBreakerService elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/indices/breaker/CircuitBreakerService.ja......

go4it
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部