![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
Mrpre
??
展开
-
Redis cluster 原理
Redis cluster 原理Redis cluster 设计文档可见:https://redis.io/topics/cluster-spec#configuration-handling-propagation-and-failovers相关资料https://chanjarster.github.io/post/redis-cluster-config-propagation/在当前Redis6.0的版本中,可以使用 redis-cli --cluster create命令来规划一个集群,原创 2020-10-28 17:47:45 · 359 阅读 · 0 评论 -
redis 模块编程中 key value的生命周期
RedisModule_OpenKey本节探讨下 RedisModule_OpenKey 中 key-value 何时释放。首先 的数据结构如下struct RedisModuleKey { .... robj *key; robj *value; ....}我们关心的是 RedisModuleKey 本身以及 其中 的 key和value值的生命周期RedisModuleKey 本身 通过 RedisModule_OpenKey申请,模块内存管理自动将原创 2020-07-27 15:56:46 · 530 阅读 · 0 评论 -
Redis源码分析之PSYNC同步
Redis master-slave 同步源码分析(1)slave 流程分析(2)master 流程分析Slave 分析当Redis 启动后,会每隔 1s 调用 replicationCron (通过 redis自带的serverCron后台线程),即无论是单机、还是Master、还是Slave都会调用这个函数。我们先来讨论下作为Slave的情况下,replicationCron 函数运行逻辑。作为slave,这个函数的功能应该能猜到,就是和Master保持连接、握手、接受Master存量数据+原创 2020-07-10 14:29:16 · 770 阅读 · 0 评论 -
Redis源码分析之HSET流程与ziplist
本篇分析Redis 如何处理hset指令数据结构首先,hset不同于set,set是存储在dict,即redis字典里面,毕竟set只是简单的kv类型数据。 hset存储的是复杂的数据结构,使用了压缩表ziplist,例如hset mykey name abc id 123其中 mykey 为 key,abc为field,123为 value 。首先,需要说明的是,如果想了解ziplist内存的布局,完全可以看ziplist.c 文件开头的那些注释,这个是非常官方的解释,也非常详细。名为myk原创 2020-06-19 17:27:18 · 1213 阅读 · 0 评论 -
Redis源码分析之SET流程
本篇分析Redis 如何处理set指令Client客户端解析用户输入、构造指令redisFormatSdsCommandArgv()redisAppendCommandArgv()cliSendCommand()issueCommandRepeat()repl()例如用户输入 set abcd 2,则构造的指令就是*3\r\n$3\r\nset\r\n$4\r\nabcd\r\n$1\r\n2\r\n,*后面表示指令+参数的个数,$后面表示当前参数的长度,然后紧跟参数值。Server服原创 2020-06-12 10:32:56 · 600 阅读 · 0 评论 -
Redis源码分析之SDS
Redis源码分析之SDSredis使用的sds源码,由另一个git库管理,独立于redis之外,可以独立看待:https://github.com/antirez/sds ,其好处,再其主页上说的很清楚了,本文是用来分析sds的内存结构,知道内存结构,也就能很好的理解sds的一些操作的原理。sds被用来描述Redis中的“字符串”,也是redis中最为简单的数据结构之一。本文就来分析 sds...原创 2020-06-08 14:57:11 · 257 阅读 · 0 评论