上一页 1 2 3 4 5 6 ··· 10 下一页
摘要: 集群 Redis集群是Redis提供的分布式数据库方案,集群通过分片(sharding)来进行数据共享,并提供复制和故障转移功能。 Redis服务器在启动时会根据cluster-enabled配置选项是否为yes来决定是否开启服务器的集群模式。 CLUSTER MEET <ip> <port> 命令 阅读全文
posted @ 2023-01-12 15:48 Saturn5 阅读(108) 评论(0) 推荐(0)
摘要: Sentinel Sentinel(哨岗、哨兵)是Redis的高可用性(high availability)解决方案:由一个或多个Sentinel实例(instance)组成的Sentinel系统(system)可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下 阅读全文
posted @ 2023-01-12 11:39 Saturn5 阅读(59) 评论(0) 推荐(0)
摘要: 复制 在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项,让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(slave)。 Redis的复制功能分为同步(sync)和命令传播 阅读全文
posted @ 2023-01-11 18:23 Saturn5 阅读(58) 评论(0) 推荐(0)
摘要: 服务器 命令请求的执行过程 客户端发送命令请求 当客户端与服务器之间的连接套接字因为客户端的写入而变得可读时,服务器将调用命令请求处理器来执行以下操作: 读取套接字中协议格式的命令请求,并将其保存到客户端状态的输入缓冲区里面。 对输入缓冲区中的命令请求进行分析,提取出命令请求中包含的命令参数,以及命 阅读全文
posted @ 2023-01-11 16:18 Saturn5 阅读(59) 评论(0) 推荐(0)
摘要: 客户端 通过使用由I/O多路复用技术实现的文件事件处理器,Redis服务器使用单线程单进程的方式来处理命令请求,并与多个客户端进行网络通信。 对于每个与服务器进行连接的客户端,服务器都为这些客户端建立了相应的redis.h/redisClient结构(客户端状态),这个结构保存了客户端当前的状态信息 阅读全文
posted @ 2023-01-11 15:16 Saturn5 阅读(61) 评论(0) 推荐(0)
摘要: 事件 Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件: 文件事件(file event):Redis服务器通过套接字与客户端(或者其他Redis服务器)进行连接,而文件事件就是服务器对套接字操作的抽象。服务器与客户端(或者其他服务器)的通信会产生相应的文件事件,而服务器则通过监听并处 阅读全文
posted @ 2023-01-11 13:39 Saturn5 阅读(27) 评论(0) 推荐(0)
摘要: AOF(append only file) AOF 持久化功能的实现可以分为命令追加(append)、文件写入、文件同步(sync)三个步骤。 命令追加:当 AOF 持久化功能处于打开状态时, 服务器在执行完一个写命令之后, 会以协议格式将被执行的写命令追加到服务器状态的 aof_buf 缓冲区的末 阅读全文
posted @ 2023-01-10 15:23 Saturn5 阅读(34) 评论(0) 推荐(0)
摘要: RDB持久化 SAVE命令和BGSAVE命令可以用于生成RDB文件,创建RDB文件实际由rdb.c/rdbSave函数完成: SAVE 命令由服务器进程直接执行保存操作,所以该命令会阻塞服务器。 BGSAVE 命令由子进程执行保存操作,所以该命令是异步的,不会阻塞服务器。 RDB文件的载入工作是在服 阅读全文
posted @ 2023-01-10 14:40 Saturn5 阅读(90) 评论(0) 推荐(0)
摘要: 数据库的切换 Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中,db数组的每个项都是一个redis.h/redisDb结构,每个redisDb结构代表一个数据库。 在初始化服务器时,程序会根据服务器状态的dbnum属性来决定应该创建多少个数据库。d 阅读全文
posted @ 2023-01-10 11:00 Saturn5 阅读(45) 评论(0) 推荐(0)
摘要: 对象 Redis并没有直接使用这些数据结构来实现键值对数据库, 而是基于这些数据结构创建了一个对象系统, 这个系统包含字符串对象、列表对象、哈希对象、集合对象和有序集合对象这五种类型。 typedef struct redisObject { // 类型 unsigned type:4; // 编码 阅读全文
posted @ 2023-01-09 19:36 Saturn5 阅读(53) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 ··· 10 下一页