随笔分类 -  Redis

现在我的Linux水平很差,我要通过分析别人源码的方式来进步,所有的东西都要记录、整理。
摘要:redis-cli -n 数据库编号 -a 密码 keys "过滤条件" | xargs redis-cli -n 数据库编号 -a 密码 del Demo: redis-cli -n 1 -a OM2FbRVGHBM keys "*api_trade*" | xargs redis-cli -n 阅读全文
posted @ 2019-01-25 10:23 扫地猿 阅读(2564) 评论(1) 推荐(0)
摘要:redis本身不区分命令的大小写,这里一律用小写,以下是部分简单的命令。 1.连接操作命令 quit:关闭连接(connection) auth:简单密码认证 help cmd: 查看cmd帮助,例如:help quit 2.持久化 save:将数据同步保存到磁盘 bgsave:将数据异步保存到磁盘 阅读全文
posted @ 2016-09-16 12:33 扫地猿 阅读(177) 评论(0) 推荐(0)
摘要:Linux 下简易的安装过程: 1.源码安装之前要先安装gcc,不然编译会出错, 2.下载源码,去http://download.redis.io/releases/这个文件夹内找想安装的版本,我下载的是wget http://download.redis.io/releases/redis-3.2 阅读全文
posted @ 2016-09-15 21:19 扫地猿 阅读(216) 评论(0) 推荐(0)
摘要:Redis的模块化开发设计的还是相当不错的,在Bio.h和Bio.c文件中定义了一个多线程的文件任务处理模块,在添加和处理任务的时候使用互斥锁和条件变量进行的同步,而且本身也支持多线程,这个模块的支持两个类型,一个是关闭文件,另一个是将内存中的数据刷新到磁盘中去,也算是数据持久化的一部分了。其中三个 阅读全文
posted @ 2016-03-22 17:07 扫地猿 阅读(723) 评论(0) 推荐(0)
摘要:Redis的定时器是自己实现的,不是很复杂。说说具体的实现吧。 定时器的存储维护采用的是普通的单向链表结构,具体节点定义为: 定时器记录的根节点的位置是在事件管理器中,剩下的就是普通的操作函数了 阅读全文
posted @ 2016-03-20 18:33 扫地猿 阅读(808) 评论(0) 推荐(0)
摘要:Redis统一的时间管理器,同时管理文件事件和定时器, 这个管理器的定义: 定时器结构体和文件事件结构体 事件管理器的定义,在结构体中维护了两个数组,一个存放设置的文件描述符和设置,一个存放经过检测,满足条件的文件描述符和对应的触发状态,在处理的时候直接处理 fired中的数据就好。 具体的接口函数 阅读全文
posted @ 2016-03-20 16:18 扫地猿 阅读(599) 评论(0) 推荐(0)
摘要:Redis的事件管理和定时器的管理都是自己来实现的,Redis的事件管理分为两部分,一部分是封装了系统的异步事件API,还有一部分是在这基础上封装了一个通用的事件管理器,根据具体的系统来决定具体使用哪个异步管理API。 先来说说Redis支持哪些异步的系统API。Redis内部封装了epoll,ev 阅读全文
posted @ 2016-03-20 14:32 扫地猿 阅读(440) 评论(0) 推荐(0)
摘要:sds模块的具体实现: 1、sdsnewlen 根据参数生成一个sds字符串 未完待续。。。 阅读全文
posted @ 2016-03-13 22:44 扫地猿 阅读(208) 评论(0) 推荐(0)
摘要:Redis开发者在开发过程中没有使用系统的原始字符串,而是使用了自定义的sds字符串,这个模块的编写是在文件:sds.h和sds.c文件中。Redis自定义的这个字符串好像也不是很复杂,远不像nginx自定义的一样复杂,但也存在一些问题。 在.h文件中定义了一个新的类型和一个结构体分别是: 先说两个 阅读全文
posted @ 2016-03-13 22:21 扫地猿 阅读(581) 评论(0) 推荐(0)
摘要:上一遍详细的写明了Redis为内存管理所做的初始化工作,这篇文章写具体的函数实现。 1、zmalloc_size,返回内存池大小函数,因为库不同,所以这个函数在内部有很多的宏定义,通过具体使用的库来确定到底用哪个。 2、zmalloc,内存分配函数 3.zcalloc 4、zrealloc,该函数放 阅读全文
posted @ 2016-03-13 20:15 扫地猿 阅读(799) 评论(0) 推荐(0)
摘要:Redis数据库的内存管理函数有关的文件为:zmalloc.h和zmalloc.c。 Redis作者在编写内存管理模块时考虑到了查看系统内是否安装了TCMalloc或者Jemalloc模块,这两个是已经存在很久的内存管理模块,代码稳定、性能优异,如果已经安装的话,则使用之,最后检查是否是Mac系统, 阅读全文
posted @ 2016-03-13 18:21 扫地猿 阅读(1416) 评论(0) 推荐(0)