摘要: 对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不需要为一个new出来的对象写配对的delete/free代码,不容易出现内存泄漏或者内存溢出的问题。但是,由于Java程序员将控制内存的权利交给了Java虚拟机,一旦出现内存泄漏或内存溢出的问题,如果不了解Java虚拟机是怎样使用内存的,那 阅读全文
posted @ 2021-09-02 08:33 慕仙白 阅读(75) 评论(0) 推荐(0) 编辑
摘要: Redis集群通过分片(sharding)来进行数据共享,并提供复制和故障转移功能。 1. 节点 节点通过三次握手将其他节点添加到自己所处的集群当中。 每个节点clusterNode都保存着一个clusterState结构,这个结构记录了在当前节点的视角下,集群目前所处的状态。 2. 槽指派 Red 阅读全文
posted @ 2021-08-30 19:28 慕仙白 阅读(80) 评论(0) 推荐(0) 编辑
摘要: Sentinel (哨兵)是Redis的高可用性解决方案:由一个或多个sentinel实例组成的sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的 阅读全文
posted @ 2021-08-28 17:30 慕仙白 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 用户可以通过SLAVEOF命令让一个服务器去复制另一个服务器,下面命令中,127.0.0.1:12345是从服务器,127.0.0.1 6379是主服务器。 1. 旧版复制功能的实现 Redis的复制功能分为同步(sync)和命令传播(command propagate)两个操作: 同步操作用于将从 阅读全文
posted @ 2021-08-26 13:34 慕仙白 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 1. 客户端 1.1 客户端属性 客户端状态包含的属性分为两类: 一类是比较通用的属性,无论客户端执行什么工作,都需要用到这些属性。本节主要涉及这些属性 另外一类是和特定功能相关的属性,比如操作数据库时用到的db属性和dictid属性,执行事务时需要用到的mstate属性,以及执行WATCH命令时要 阅读全文
posted @ 2021-08-25 20:44 慕仙白 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 1. 事件 Redis服务器是一个事件驱动程序,服务器处理以下两类事件: 文件事件(file event):Redis服务器通过套接字与客户端(或其他Redis服务器)进行连接,而文件事件就是服务器对套接字操作的抽象。服务器与客户端(或其他服务器)的通信会产生相应的文件事件,而服务器则通过监听并处理 阅读全文
posted @ 2021-08-25 14:23 慕仙白 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 1. RDB 持久化 Redis是内存数据库,将数据库中的数据存储在内存中,通过RDB持久化功能,可以将Redis在内存中的数据库状态(服务器中的非空数据库以及它们的键值对统称为数据库状态)保存到磁盘里面,避免数据意外丢失。 1.1 RDB文件的创建和保存 SAVE命令由服务器进程执行保存功能,BG 阅读全文
posted @ 2021-08-24 19:35 慕仙白 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 1. 服务器中的数据库 Redis服务器将所有数据库都保存在服务器状态redis.h / redisServer结构的db数组中,db数组的每个项都是一个redis.h/redisDb结构,每个redisDb结构代表一个数据库: 2. 切换数据库 3. 数据库键空间 Redis是一个键值对数据库服务 阅读全文
posted @ 2021-08-24 14:26 慕仙白 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 1. 对象的类型与编码 Redis中的每个对象都由一个redisObject结构表示,该结构中和保存数据有关的三个属性分别是type属性,encoding属性和ptr属性: 1.1 类型 对于redis中保存的键值对来说,键总是一个字符串对象,而值则可以是字符串对象、列表对象、哈希对象、集合对象或者 阅读全文
posted @ 2021-08-24 08:14 慕仙白 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 1. 简单动态字符串 下图是简单动态字符串(simple dynamic string, SDS)的结构表示 free属性的值为0,表示这个SDS没有分配任何未使用空间 len属性的值为5,表示这个SDS保存了一个5字节长的字符串 buf属性是一个char类型的数组,数组的前五个字节分别保存了R, 阅读全文
posted @ 2021-08-13 16:11 慕仙白 阅读(120) 评论(0) 推荐(0) 编辑