# Redis 3 源码解析 ## 流程图 ```mermaid flowchart TD A[准备工作] --> B[下载 Redis 3 源码] B --> C[阅读源码] C --> D[分析源码] D --> E[理解源码逻辑] E --> F[总结成文] ``` ## 状态图 ```mermaid stateDiagram 开始 -
原创 2024-05-24 05:22:31
20阅读
   Redis提供了两种持久化方式:RDB和AOF  下面,我们来看看上述两者的底层实现原理。一,RDB持久化  1.RDB文件的创建与载入  在Redis中,有两种方式可以生成RDB文件,一个是SAVE,另一个是BGSAVESAVE命令在进行持久化操作的过程中,会阻塞Redis服务进行,也就是说,在以SAVE方式进行持久化操作的过程中,服务器不能再处理其他的命令请求,这个请求过程必须
转载 2023-08-27 19:28:02
30阅读
引言跳跃表是一个非常实用的数据结构,有趋近于红黑树的效率,却比红黑树简单的多.Redis中用跳跃表来作为有序set的数据结构之一,在集群中也有使用,确实是我们应该掌握的一种数据结构.redis中跳跃表的实现也是非常的经典,且十分易懂,不管从什么角度来说,于我们而言确实都是很值得学习的.我们首先来看看基础的数据结构typedef struct zskiplistNode { // 成...
原创 2022-07-08 09:37:14
74阅读
2018/4/7    从今天开始,记录学习Redis源码的一些笔记,写一些自己的理解与总结。主要以概念和自己觉得重要的东西为主。希望能在一个月内看完。首先开篇先看redis中sds链表的实现。数据结构其数据结构异常简单typedef char *sds;就一个字符串指针。/* Note: sdshdr5 is never used, we just acc
转载 2023-09-22 13:07:45
46阅读
一、set方法1,先去调用底层的connect方法,去进行一个socket连接 connect 从源码中可以看到是通过CP协议与redis建立socket连接,此时可以将redis理解为一个serverSocket。 2.手写模拟一个redispublic class ServerSocketRedis { public static void main(S
转载 2023-05-30 09:14:33
144阅读
系列文章目录01 - 使用VS Code调试Redis源码02 - Redis源码结构介绍 文章目录系列文章目录源码目录介绍目录总览deps目录src 目录tests 目录utils目录主要功能对应文件参考资料 就像看书要先看目录了解整本书的结构一样,读源码也要纵览目录结构,了解其组织方式。本文可以看作是Redis 源码剖析与实战 # 01 | 带你快速攻略Redis源码的整体架构 一文的笔记,原
转载 2023-07-13 14:46:49
55阅读
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认
原创 2022-07-05 11:20:42
436阅读
经过前两节的学习,我们已经可以在本地搭建Redis环境,并且可以通过简单的命令行来对Redis进行操作,当然这离实现完全掌握Redis,并且将其用作工业用途,那要走的路还有很多很多,今天换个角度来继续学习Redis。 再回顾一下Redis的简介:Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API 可以看到Red
转载 2023-07-10 02:30:22
116阅读
之前零零散散的写过一些关于redis的文章,主要是为了能够对自己的学习和使用做一个记录,加深印象吧,使用redis也有一段时间了,总有 一种虽然大部分内容都了解,但是心里很不踏实的感觉,之前也看过源码,但是由于不是很系统,也没有坚持下来,今天想了想,决定系统的 对源码进行一次解读,这样基本上可以对redis有一个全面的学习,希望可以做到精通吧。 当然要解读redis源码,要先熟悉一下C语言,毕竟
文章目录1. Redis 集群2. 关键数据结构2.1 集群状态 clusterState2.2 集群节点 clusterNode2.3 集群连接 clusterLink2.4 集群消息 clusterMsg3. 集群建立源码分析3.1 集群节点的初始化3.2 cluster meet 邀请节点加入集群3.3 被邀请节点的处理3.4 连接建立后发起邀请节点发送 PING 消息3.5 连接建立后被
转载 2023-06-13 11:19:11
216阅读
介绍ASK和MOVED的区别MOVED代表槽的负责权已经从一个节点转移到另一个节点,客户端收到
原创 2022-08-05 09:08:13
116阅读
1点赞
此文已由作者赵计刚授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 4.3、public E take() throws InterruptedException 原理: 将队头元素出队,如果队列空了,一直阻塞,直到队列不为空或者线程被中断 将队头元素出队,如果队列空了,一直
转载 2018-12-18 16:31:00
73阅读
2评论
此文已由作者赵计刚授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 4、get(Object key) 使用方法: 源代码: ConcurrentHashMap的get(Object key) Segment的get(Object key, int hash) Segment
转载 2018-12-20 09:51:00
89阅读
2评论
此文已由作者赵计刚授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 4、get(Object key) 使用方法: 源代码: ConcurrentHashMap的get(Object key) Segment的get(Object key, int hash) Segment
转载 2018-12-20 09:51:00
49阅读
2评论
4.3、public E take() throws InterruptedException原理:将队头元素出队,如果队列空了,一直阻塞,直到队列不为空或者线程被中断使用方法:try { abq.take(); } catch (InterruptedException e) { e.printStackTrace();
转载 2018-12-18 16:31:00
65阅读
2评论
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆
原创 2022-07-11 09:24:31
372阅读
文章目录引言sentinelHandleRedisInstancesentinelCheckSubjectivelyDownsentinelCheckObjective
原创 2022-07-01 10:01:58
85阅读
对于Redis来说,键值对中的键是字符串,值有时也是字符串。我们在Redis中写入一条用户信息,记录了用户姓名、性别、所在城市等,这些都是字符串,如下所示: SET user:id:100{"name":"zhangsan","gender":"M","city":"beijing"} 在Redis ...
转载 2021-08-30 23:42:00
129阅读
2评论
Redis 英文拼写: REmote DIctionary Server(Redis)Redis 是一个由Salvatore Sanfilippo写的高性能key-value存储系统。去
原创 2022-12-21 10:34:28
222阅读
# Redis 源码解析:实现回复 ### 一、引言 Redis 是一个高性能的内存键值存储数据库,在全球范围内被广泛应用。在使用 Redis 进行开发时,理解其源码对于优化和使用 Redis 是非常重要的一步。本篇文章将带你逐步解析 Redis源码实现,特别是如何处理数据库命令的回复。 ### 二、整体流程 我们将在此示例中通过解析 Redis 接收到的命令和生成回复的过程。具体步骤
原创 2024-10-19 04:42:34
41阅读
  • 1
  • 2
  • 3
  • 4
  • 5