redis
makesifriend
聚沙成塔,积少成多
展开
-
redis下的字符串分割函数
在看redis-cli.c的时候,遇到了字符串分割函数sdssplitargs,我想不就是字符串分割函数吗,我也会写,我到要看看自己写的东西与标准有何不同。一个用C语言写的字符串分割函数需要考虑哪些问题呢?1,分割的字符串用啥存储呢?答案是二重指针,相当于一个字符串数组;2,使用啥函数解决从源字符串复制到新开辟的指针所指向的空间呢?strncpy;3,函数的逻辑问题?嗯,如果遇到‘...原创 2019-05-20 10:03:16 · 1295 阅读 · 0 评论 -
redis客户端连接到服务器的步骤
看了大约3天的redis-cli了,是进行总结的时候了。和大多数客户端连接到服务器一样,redis-cli连接到服务器也主要分为两个阶段,请求连接阶段和数据传送阶段。具体来讲redis-cli做的事情有:1、以socket方式建立连接;2,选择相应的数据库;3,对客户端发送的命令进行编码;4,发送客户端编码的数据(write);5,接收服务器回应的数据(read);6,...原创 2019-05-20 17:39:25 · 5450 阅读 · 2 评论 -
认识linenoise
在学习redis的client源码的过程中,遇到了linenoise这个函数,知道它是一个处理命令的工具,但它具体能做什么工作,怎样作这些工作还是不清楚。通过查看相关资料,对linenoise的功能及部分使用方法有了初步的认识,下面就让我介绍一下:1,linenoise是个处理指令的交互窗口在redis中,linenoise用在client中,就像是一个交互窗口,在这个窗口中,可以输入指令...原创 2019-05-18 16:32:02 · 1521 阅读 · 0 评论 -
redis中epoll事件怎样与读写回调函数绑定
epoll多路分离机制虽然以数组的形式返回所有激活事件的fd及属性(读写),但没有指定对每个事件的操作。事实上,如果需要读写不同激活的fd,只能根据fd、属性来再次判断自己操作的是哪一个事件。在读操作的执行函数一致、写操作的执行函数一致时,这种做法是可行的。但如果读或写操作属性的事件具有不同的执行函数,就不能单纯根据事件的属性决定执行函数了。为了解决这个问题,redis提供了读写回调函数与注册事件...原创 2019-06-19 09:36:48 · 1558 阅读 · 2 评论 -
redis的rehash工作原理
在redis中,键值以哈西表的方式进行存储,在键值对的数目比较多时,哈西值冲突的次数就会变多,这会降低检索效率。为了减少哈西表中的地址冲突次数,redis会增加键值空间,重新定义键值对的映射地址,也就是进行所谓的rehash。本文主要通过redis源码分析rehash原理。主要解决如下几个问题。1,redis中hash表的数据结构是怎样的?2,什么时候开始进行rehash?3,怎样为扩...原创 2019-06-18 09:38:44 · 6916 阅读 · 0 评论