随笔分类 -  redis源码

摘要:魔改redis之添加命令hrandmember 正文 前言 想从redis的hash表获取随机的键值对,但是发现redis只支持set的随机值SRANDMEMBER。但是如果把hash表中的数据又存一份,占用的空间又太大。也可以通过先HLEN获取hash表的大小,随机出一个偏移值,再调用HSCAN获 阅读全文
posted @ 2020-12-27 22:33 dewxin 阅读(406) 评论(1) 推荐(0) 编辑
摘要:redis4.0的持久化 简介 虽然redis是内存数据库,但它也提供了持久化的功能。其中rdb持久化可以定时备份用于回滚,而aof持久化则更接近数据库最新的状态,服务器重启后可以恢复至最新的状态。两者数据备份的粒度不同,rdb将整个数据库备份,aof持久化粒度更为小,但生成的文件更大。如果有多个线 阅读全文
posted @ 2020-12-17 22:19 dewxin 阅读(521) 评论(0) 推荐(1) 编辑
摘要:redis4.0的时间事件与expire 简介 时间事件和文件事件有着相似的接口,他们都在aeProcessEvents中被调用。不同的是文件事件底层委托给 select,epoll等多路复用接口。而时间事件通过每个tick检查时间事件的触发时间是否已经到期。redis4.0版本中只注册了一个时间事 阅读全文
posted @ 2020-12-15 19:59 dewxin 阅读(462) 评论(0) 推荐(0) 编辑
摘要:redis4.0的命令 简介 正文 redisCommand与redisCommandTable 所有的命令一开始都位于server.c文件起始位置的redisCommandTable中,在观察redisCommandTable表之前,我们先看一下redisCommand结构体。 typedef v 阅读全文
posted @ 2020-12-15 19:55 dewxin 阅读(138) 评论(0) 推荐(0) 编辑
摘要:redis4.0的文件事件与客户端 简介 文件事件的流程大概如下: 在服务器初始化时生成aeEventLoop并赋值给server,接着创建监听TCP连接事件。 处理TCP连接时会创建client类型的对象,将其绑定在accept函数返回的文件描述符fd上,并对fd注册一个可读事件,当客户端数据来临 阅读全文
posted @ 2020-12-09 17:15 dewxin 阅读(111) 评论(0) 推荐(0) 编辑
摘要:redis4.0的启动流程 简介 redis 在接收客户端连接之前,大概做了以下几件事情: 初始化服务端配置 初始化服务器 进入事件主循环 正文 全局server对象 在redis中,有一个全局的对象server保存了redis服务器对象的信息,redis服务器的操作都围绕着该对象展开。下文中当提及 阅读全文
posted @ 2020-12-09 17:14 dewxin 阅读(130) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示