文章目录前言第一部分 数据结构对象简单动态字符串链表字典hash算法rehash跳跃表有序表跳跃表跳表的搜索跳表的插入跳表的删除整数集合集合升级降级压缩列表对象字符串对象列表对象哈希对象集合对象有序集合类型检查内存回收对象共享 前言工作中经常会用到Redis,虽说会一些Redis的增删改查的API基本可以满足日常工作的需求,但是在一些时候还是会遇到一些疑惑。比如在插入string类型然后取出来
转载 2023-05-29 14:34:16
391阅读
前言redis性能为什么这么出色?它与其他缓存中间件有什么区别?redis底层使用了哪些数据结构支撑它如此高效的性能?内部丰富的数据类型底层为什么都使用至少两种数据结构实现?分别是什么?如果合理的使用redis才能发挥它最大的优势?学习完《redis设计实现》前面关于数据结构对象的章节,以上问题都能得到解答。你也能了解到redis作者如此的煞费苦心设计了这么多丰富的数据结构,目的就是优化内存。
  本文总结自《Redis设计实现》一书,只打算总结Redis底层数据结构的实现。R1 Redis概览  Redis是一个C语言编写的开源、非关系型内存数据库。它底层属于单线程、全内存操作,提供对象共享、引用计数和对象回收功能。它通过SDS(简单动态字符串)、链表、字典、跳跃表、整数集合和压缩表这几种简单数据结构,实现了五种对象:String、List、Set、ZSet、Hash。和对象同级别的
转载 2023-09-04 14:50:41
219阅读
Redis设计实现(一~五整合版)by @飘过的小牛 一前言项目中用到了redis,但用到的都是最最基本的功能,比如简单的slave机制,数据结构只使用了字符串。但是一直听说redis是一个很牛的开源项目,很多公司都在用。于是我就比较奇怪,这玩意不就和 memcache 差不多吗?仅仅是因为memcache是内存级别的,没有持久化功能。而redis支持持久化?难道这就是它的必杀技?带着这个疑问
0. 前言特性: redis内置集合数据类型,支持对集合执行交集、并集、差集等一部分命令只能对特定数据类型执行(append只能对字符串,hset只能对哈希表),还有一部分命令可以对全部的数据类型执行(del、type以及expire)1. 引言单机功能:第一部分、第二部分、第四部分多机功能:第三部分源代码:C语言相关订正信息:http://redisbook.com/2. 第2章 简单动态
转载 10月前
41阅读
Redis 设计实现 读书笔记(简略版)写在前面第一章(内部数据结构)SDSListDictionaryRehashRehash COW渐进式Rehash字典收缩Skiplist(跳跃表) 写在前面这是我第一次尝试写读书笔记,其实也是想和大家一起交流一下学习新技术的点滴,内容也有参考别人博客的部分会在开头直接表明。写这博客时,我正在读黄建宏老师写的《Redis 设计实现, 第一版》,同时
概述本书全面而完整地讲解了Redis的内部机制实现方式,对Redis的大多数单机功能以及所有多机功能的实现原理进行了介绍,展示了这些功能的核心数据结构以及关键的算法思想.图示丰富,描述清晰,井给出大量参考信息。通过阅读本书,读者可以快速、有效地了解Redis的内部构造以及运作机制,更好、更高效地使用Redis。本书主要分为四大部分:第一部分“数据结构对象":介绍了Redis中的各种对象及其数据
全面而完整地讲解了Redis的内部机制实现方式,对Redis的大多数单机功能以及所有多机功能的实现原理进行了介绍,展示了这些功能的核心数据结构以及关键的算法思想,图示丰富,描述清晰,并给出大量参考信息。
转载 2021-08-13 14:40:05
8880阅读
# Redis设计实现 ## 简介 在教会小白如何实现"Redis设计实现"之前,让我们先来了解下整个实现过程的流程。下面是实现Redis设计实现的步骤: | 步骤 | 描述 | | --- | --- | | 1 | 学习Redis的基本原理和架构 | | 2 | 设计数据结构和算法 | | 3 | 实现基本的数据存储和读取功能 | | 4 | 实现Redis命令的解析和执行 |
原创 10月前
84阅读
面而完整地讲解了Redis的内部机制实现方式,对Redis的大多数单机功能以及所有多机功能的实现原理进行了介绍,展示了这些功能的核心数据结构以及关键的算法思想,图示丰富,描述清晰,并给出大量参考信息。 读者可以快速、有效地了解Redis的内部构造以及运作机制,更好、更高效地使用Redis。 获取: ...
转载 2021-08-11 11:06:00
852阅读
2评论
Redis 设计实现本书的目标是以简明易懂的方式讲解 Redis 的内部运行机制, 通过阅读本书, 你可以了解到 Redis 从数据结构到服务器构造在内的几乎所有知识。为了保证内容的简洁性, 本书会尽量以高抽象层次的角度来观察 Redis , 并将代码的细节留给读者自己去考究。如果读者只是对 Redis 的内部运作机制感兴趣, 但并不想深入代码, 那么只阅读本书就足够了。另一方面, 对于需要深入
目录1、客户端1.1客户端属性1.1.1套接字描述符1.1.2名字1.1.3标志1.1.4输入缓冲区 1.1.5命令命令参数 1.1.6命令的实现函数 1.1.7输出缓冲区1.1.8身份验证1.1.9时间1.2客户端的创建关闭1.2.1创建普通客户端1.2.2关闭普通客户端 1.2.3Lua脚本的伪客户端 1.2.4AOF文件的伪客户端2、服务
电子书传送门https://www.kancloud.cn/kancloud/redisbook/63892 简书的学习传送门https://www.jianshu.com/p/cc8f2db3ede3https://www.jianshu.com/p/c95c8450c5b6
转载 2023-07-12 13:58:34
73阅读
文章目录常见数据结构SDS链表字典哈希算法rehash渐进式rehashrehash步骤:rehash条件渐进式rehash跳跃表整数集合集合升级压缩列表快速列表为什么使用快速列表?ziplist切割大小压缩深度对象内存回收对象共享数据库RDB持久化创建载入AOF持久化AOF重写事件复制旧版主从复制实现新版主从复制实现主从复制实现心跳检测哨兵模式(Sentinel)集群发布和订阅Stream
读《Redis设计实现》黄键宏著,笔记,第二部分。 目录第二部分 单机数据库的实现2.1 数据库服务器中得数据库切换数据库数据库键空间设置键的生存时间或过期时间过期时间保存过期时间删除过期时间过期键的删除策略Redis 的过期键删除策略惰性删除策略的实现定期删除策略的实现AOF、RDB 和复制功能对过期键的处理RDB 持久化AOF 持久化复制数据库通知发送通知实现2.2 RDB 持久化RDB
前言:本书从底层源码的角度对Redis的数据结构以及持久化、主从复制、哨兵和集群等特性的实现原理进行了详尽的剖析﹐图文并茂。行文中也能看出作者团队在源码分析和系统编程方面的功力﹐我相信本书对于所有想要了解Redis及其内部实现的人来说都会有所帮助。 目录展示:目录内容截图虽然多,但是还是值得展示给大家看一些这份多为资深专家联合编写的书籍有多强!这份资料一共有22个章节,有需要的小伙伴可-公众号【不
Redis是运用比较广泛的NoSQL产品之一,目前的稳定版本是2.6.10,包括Github、Instagram、Blizzard、新浪微博等都在产品中大量使用了Redis。其代码基于BSD协议开源,整个项目代码量只有2万多行(2.2版本),大家可以通过阅读代码在相对短的时间内学习到作者的设计理念和Redis实现方式,做到知其然知其所以然。日前黄健宏(huangz)发布了开源文档《Redis设计
目录简单动态字符串链表字典跳跃表整数集合压缩列表对象数据库RDB持久化AOF持久化事件客户端服务器复制sentinel集群发布和订阅事务lua脚本排序二进制位数组慢查询日志监视器今天完成了第一遍《redis设计实现》这本书的阅读。一个小小的redis想不到里面有这么多的细节,颇为叹服!现将主要内容作下记录,以备复习使用,也希望能帮到想快速了解redis的朋友。全书共分四大部分,24个章节。第一部
转载 2023-07-07 16:53:43
45阅读
Redis设计实现(第三部分):多机数据库的实现三、多机数据库的实现14. 复制14.1 旧版复制功能的实现(2.8之前)第一步:同步1. 客户端向从服务器发送SLAVEOF命令 2. 从服务器向主服务器发送SYNC命令 3. 收到SYNC命令的主服务器执行BGSAVE命令,在后台生成一个RDB文件,并使用一个缓冲区记录从现在开始执行的所有写命令。 4. 主服务器BGSAVE命令执行完毕时
注:所有这部分内容来自于黄建宏前辈的《Redis设计实现》一书第一部分 数据结构对象Redis数据库里面的每个键值对(key-value pair)都是由对象(object)组成的,其中:数据库键总是一个字符串对象(string object)数据库的值可以是字符串对象、列表对象、哈希对象、集合对象、有序集合对象这五种之中的一种。第2章 简单动态字符串Redis自己创建了一种名为简单动态字符串
  • 1
  • 2
  • 3
  • 4
  • 5