摘要: chapter20 Lua脚本 Redis从2.6版本开始引入对Lua脚本的支持,通过在服务器中嵌入Lua环境,Redis客户端可以使用Lua脚本,直接在服务器端原子地执行多个Redis命令 20.1 创建并修改Lua环境 创建Lua环境 载入函数库 创建redis全局表格 20.2 Lua环境写作 阅读全文
posted @ 2021-04-20 11:44 汉森伯逸 阅读(48) 评论(0) 推荐(0) 编辑
摘要: chapter19 事务 Redis通过MULTI、EXEC、WATCH等命令来实现事务功能 19.1 事务的实现 事务开始 redis> MULTI ok 通过切换客户端状态的flag属性的REDIS_MULTI标识来完成 命令入队 事务队列 struct redisServer{ // 事务状态 阅读全文
posted @ 2021-04-20 11:43 汉森伯逸 阅读(43) 评论(0) 推荐(0) 编辑
摘要: chapter18 发布与订阅 客户端订阅频道。 客户端向频道发送消息, 消息被传递至各个订阅者。 匹配模式 客户端订阅模式。 客户端向频道发送消息, 消息被传递给正在订阅匹配模式的订阅者。 另一个模式被匹配的例子。 18.1 频道的订阅与退订 struct redisServer{ /* Pubs 阅读全文
posted @ 2021-04-20 11:42 汉森伯逸 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 17.1 节点 启动节点 Redis服务器启动时会根据cluster-enabled配置选项是否为yes来决定是否开启服务器的集群模式 节点会继续使用redisServer结构来保存服务器的状态,使用redisClient结构来保存客户端的状态,至于那些集群模式下才会用到的数据结构,节点将它们保存到 阅读全文
posted @ 2021-04-20 11:41 汉森伯逸 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 16.1 启动并初始化Sentinel 初始化服务器 Sentinel本质上只是运行在特殊模式下的Redis服务器,启动第一步就是初始化一个普通的Redis服务器 使用Sentinel专用代码 使用redis.h/REDIS_SERVERPORT常量值作为服务器端口 使用redis.h/redisC 阅读全文
posted @ 2021-04-20 11:38 汉森伯逸 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 15.1 旧版复制功能的实现 同步 命令传播 旧版复制功能的缺陷 15.3 新版复制功能的实现 Redis2.8开始,使用PSYNC命令替代SYNC命令来执行复制时的同步操作 PSYNC命令具有完整重同步和部分重同步两种模式: 完整重同步与SYNC执行步骤基本相同 部分重同步用于处理断线后重复制情况 阅读全文
posted @ 2021-04-20 11:35 汉森伯逸 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 14.1 命令请求的执行过程 读取命令请求 命令执行器(1):查找命令实现 在命令表(command table)中查找参数所指定的命令,并将找到的命令保存到客户端状态的cmd属性里面 命令执行器(2):执行预备操作 14.2 serverCron函数 更新服务器时间缓存 struct redisS 阅读全文
posted @ 2021-04-20 11:34 汉森伯逸 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 服务器为每个客户端建立相应的redis.h/redisClient结构,这个结构保存了客户端当前的状态信息 客户端的套接字描述符 客户端的名字 客户端的标志值 只想客户端正在使用的数据库的指针,以及该数据库的号码 客户端当前要执行的命令、命令的参数、命令参数的个数,以及指向命令实现函数的指针 客户端 阅读全文
posted @ 2021-04-20 11:31 汉森伯逸 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 12.1 文件事件 Redis基于Reactor模式开发了自己的网络事件处理器:这个处理器被称为文件时间处理器: 文件时间处理器使用IO多路复用程序来同时监听多个套接字,并根据套接字目前执行的任务来为套接字关联不用的事件处理器 当被监听的套接字准备好执行连接应答(accept)、读取(read)、写 阅读全文
posted @ 2021-04-20 11:30 汉森伯逸 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 11.1 AOF持久化的实现 命令追加 当AOF持久化处于开启状态时,服务器执行完一个写命令之后,会以协议格式将被执行的写明了追加到服务器状态的aof_buf缓冲区 struct redisServers{ //... // AOF缓冲区 sds aof_buf; //... } AOF文件的写入与 阅读全文
posted @ 2021-04-20 11:29 汉森伯逸 阅读(37) 评论(0) 推荐(0) 编辑