05 2020 档案

摘要:上一篇 我们模拟了单机器下哨兵模式的搭建,那么接下来我们看下哨兵模式的实现与工作。 为什么又分成两篇呢?因为篇幅太长(偷懒),再一个这篇主要说的是Sentinel的初始化以及信息交换,下一篇着重说下状态检查、Sentinel头领选举与故障转移 。 启动并初始化Sentinel 当一个Sentinel 阅读全文
posted @ 2020-05-23 22:17 温暖如太阳 阅读(409) 评论(0) 推荐(0) 编辑
摘要:最近谈到Redis就会听到哨兵模式,工作期间同事也分享过关于哨兵模式的知识,但由于工作忙(给自己找个借口)没有没认真看,现在恶补下,老样子还是分上篇应用,下篇看实现过程,下面我们来看下哨兵到底是啥? 哨兵模式(Sentinel)是Redis的高可用解决方案。由一个或多个Sentinel实例组成的Se 阅读全文
posted @ 2020-05-23 00:27 温暖如太阳 阅读(365) 评论(0) 推荐(0) 编辑
摘要:上一篇写了Redis复制功能的简单应用,下面我们看下Redis复制功能的实现过程。下面基本上是理论部分,枯燥乏味,但希望大家能看看,毕竟知识不都是感兴趣的.耐得住寂寞,经得起诱惑,方能守得住繁华 ~.~旧版复制功能的实现 Redis的复制功能分为同步和命令传播两个操作: 1、同步操作用于将从服务器的 阅读全文
posted @ 2020-05-22 06:37 温暖如太阳 阅读(594) 评论(0) 推荐(0) 编辑
摘要:偷个懒,晚上工作忙的太晚,整个复制功能的内容还没有写完,这里先说一下复制功能的简单应用。 在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项,让一个服务器去复制另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(sl 阅读全文
posted @ 2020-05-21 08:20 温暖如太阳 阅读(272) 评论(0) 推荐(0) 编辑
摘要:Redis服务器负责与多个客户端建立网络通信,处理客户端发送的命令请求,在数据库中保存客户端执行命令所产生的数据,并通过资源管理来维持服务器自身的运转。 命令请求过程(以set命令为例) 1、客户端向服务器发送命令请求 SET KEY VALUE。 Redis服务器的命令请求来自于Redis客户端, 阅读全文
posted @ 2020-05-19 23:10 温暖如太阳 阅读(689) 评论(0) 推荐(0) 编辑
摘要:Redis服务器是典型的一对多服务器程序:一个服务器可以与多个客户端建立网络连接,每个客户端可以向服务器发送命令请求,而服务器则接收并处理客户端发送的命令请求,并向客户端返回命令回复。 通过使用由I/O多路复用技术实现的文件事件处理器,Redis服务器使用单线程单进程的方式处理命令请求,并于多个客户 阅读全文
posted @ 2020-05-18 22:44 温暖如太阳 阅读(370) 评论(0) 推荐(0) 编辑
摘要:除了RDB持久化功能之外,Redis还提供了AOF持久化功能。与RDB持久化通过保存数据库中的键值对来记录数据库状态不同,AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的。 服务器在启动时,可以通过载入和执行AOF文件中保存的命令来还原服务器关闭前的数据库状态。 AOF持久化功 阅读全文
posted @ 2020-05-17 21:02 温暖如太阳 阅读(543) 评论(0) 推荐(0) 编辑
摘要:Redis是内存数据库,它将自己的数据库状态存储在内存里面,所以如果不想办法将存储在内存中的数据库状态保存到磁盘,那么服务器 进程一旦退出,服务器中的数据库状态也会消失不见。 为了解决这个问题,Redis提供了RDB持久化功能,这个功能可以将数据库状态保存到磁盘里面 1、RDB文件的创建与载入 Re 阅读全文
posted @ 2020-05-17 09:40 温暖如太阳 阅读(489) 评论(0) 推荐(0) 编辑
摘要:Redis 服务器将所有的数据库都保存在服务器状态redisServer结构的db数组中,db数组的每个项都是一个redisDB: struct redisServer{ //一个数组保存着服务器中的所有数据库 redisDb *db; //数据库的个数 int dbnum; } dbnum:服务器 阅读全文
posted @ 2020-05-16 07:52 温暖如太阳 阅读(380) 评论(0) 推荐(1) 编辑
摘要:前面我们看了Redis用到的主要数据结构,如简单动态字符串(SDS)、双向链表、字典、压缩列表、整数集合等。 但是Redis并没有直接使用这些数据结构来实现键值对,而是基于这些数据结构创建了一个对象系统,这个系统包括字符串对象、列表对象、哈希对象、集合对象、有序集合对象,除此之外,redis的对象系 阅读全文
posted @ 2020-05-15 00:11 温暖如太阳 阅读(242) 评论(0) 推荐(0) 编辑
摘要:压缩列表是列表键与哈希键的底层实现之一。当一个列表键只包含少量的列表项,并且每个列表项要么就是小整数值,要么就是长度较短的字符串,那么Redis就会使用压缩列表来做列表键的底层实现。 压缩列表是为了节约内存而开发的,是由一系列特殊编码的连续内存块组成的顺序型数据结构。一个压缩列表可以包含任意多的节点 阅读全文
posted @ 2020-05-13 22:55 温暖如太阳 阅读(334) 评论(0) 推荐(0) 编辑
摘要:(一)跳跃表 跳跃表是一种有序的数据结构,它通过每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。 Redis使用跳跃表作为有序集合键的底层实现之一,如果一个有序集合包含的元素数量比较多,或者有序集合中元素的成员是比较长的字符串时,Redis就会使用跳跃表作为有序集合键的底层实现。 阅读全文
posted @ 2020-05-13 08:43 温暖如太阳 阅读(287) 评论(0) 推荐(0) 编辑
摘要:Redis的字典使用哈希表作为底层实现,一个哈希表中可以有多个哈希表节点,而每个哈希节点就保存在字典中的一个键值对。 redis字典所用的哈希表由disht结构定义。 typedef struct dictht{ dictEntry **table;//哈希表数组 unsigned long siz 阅读全文
posted @ 2020-05-12 08:06 温暖如太阳 阅读(334) 评论(0) 推荐(0) 编辑
摘要:链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点来灵活地调整链表的长度。 redis中链表应用广泛,如list中就使用了链表。 每一个链表节点使用listNode结构标识(双向链表): typedef struct listNode{ //前置节点 struct list 阅读全文
posted @ 2020-05-11 21:18 温暖如太阳 阅读(275) 评论(0) 推荐(0) 编辑
摘要:SDS 简单动态字符串。 SDS的结构: struct sdshdr{ int len;//记录BUF数组中已使用字节的数量 ,等于SDS所八寸字符串的长度 int free;//记录BUF数组中未使用字节的数量 char buf[];//字节数组,用于保存字符串 } 1、与c语言的字符串相比,SD 阅读全文
posted @ 2020-05-10 21:33 温暖如太阳 阅读(538) 评论(0) 推荐(0) 编辑

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