Redis集群是Redis提供的分布式数据库方案,集群通过分片来进行数据共享,并提供复制和故障转移。 节点 一个Redis集群通常由多个节点组成,每个节点互相关联,构成一个多个节点组成的集群。可以通过CLUSTER MEET命令完成连接各个节点的工作。 CLUSTER MEET <ip> <port ...
分类:
其他好文 时间:
2020-05-06 22:06:10
阅读次数:
85
最近开始看Redis设计原理,碰到一个从未遇见的数据结构:跳跃表(skiplist)。于是花时间学习了跳表的原理,并用java对其实现。 主要参考以下两本书: 《Redis设计与实现》跳表部分:主要介绍跳表在Redis中如何实现; 《算法:C语言实现(第1~4部分)》的13.5节:介绍跳表的算法。 ...
分类:
编程语言 时间:
2020-05-06 21:50:25
阅读次数:
85
Sentinel(哨兵)是Redis的高可用性的解决方案,由一个或者多个Sentinel实例组成了Sentinel系统可以监视任意多个主服务器,以及这些下属的从服务器。假如master宕机了,Redis本身(包括它的很多客户端)都没有实现自动进行主备切换,而Redis-sentinel本身也是一个独 ...
分类:
其他好文 时间:
2020-05-02 14:34:44
阅读次数:
62
RDB 的优点 1.RDB 是一个非常紧凑(compact)的文件,它保存了 Redis 在某个时间点上的数据集。 这种文件非常适合用于进行备份: 比如说,你可以在最近的 24 小时内,每小时备份一次 RDB 文件,并且在每个月的每一天,也备份一个 RDB 文件。 这样的话,即使遇上问题,也可以随时 ...
分类:
数据库 时间:
2020-04-28 20:23:22
阅读次数:
70
AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的。 AOF持久化保存数据库状态的方法是将服务器执行的SET、SADD、RPUSH三个命令保存到AOF文件中。服务器在启动的时候,可以通过载入和执行APF文件中保存的命令来还原服务器关闭之前的数据库状态。 实现 AOF持久化功能的实 ...
分类:
其他好文 时间:
2020-04-28 20:10:16
阅读次数:
118
Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中,db数组中每个项都是一个redis.h/redisDb结构,每个redisDb结构代表一个数据库,默认redis服务器会创建16个数据库。 数据库键空间 Redis是一个键值对数据库服务器,服务器中 ...
分类:
数据库 时间:
2020-04-26 19:01:55
阅读次数:
75
跳跃表 跳跃表是有一种有序的数据结构,通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。 跳跃表支持平均O(logN)、最坏O(N)复杂度的节点查找,还可以通过顺序性操作来批量处理节点。大部分情况下,跳跃表的效率可以和平衡树媲美。 Redis使用跳跃表作为有序集合键的底层实现之 ...
分类:
其他好文 时间:
2020-04-24 01:52:51
阅读次数:
92
简单动态字符串SDS SDS属性 free:表示SDS分配空间中没有使用的数量 len:表示SDS保存的字符串的长度 buf:char类型的数组,存储具体字符,最后一个字节保存了空字符'\0'。 SDS的字符串以空字符结尾,保存空字符的1字节空间空间不计算在SDS的len属性中。在分配字符串SDS空 ...
分类:
其他好文 时间:
2020-04-23 22:48:22
阅读次数:
97
《Redis设计与实现》全面而完整地讲解了Redis的内部机制与实现方式,对Redis的大多数单机功能以及所有多机功能的实现原理进行了介绍,展示了这些功能的核心数据结构以及关键的算法思想,图示丰富,描述清晰,并给出大量参考信息。通过阅读本书,读者可以快速、有效地了解Redis的内部构造以及运作机制, ...
分类:
其他好文 时间:
2020-04-11 00:30:02
阅读次数:
84
一、数据结构与对象 1. 简单动态字符串 2. 链表 3. 字典 4. 跳跃表 5. 整数集合 6. 压缩列表 7. 对象 二、单击数据库的实现 1. 数据库 2. RDB持久化 3. AOF持久化 4. 事件 5. 客户端 6. 服务端 三、多机数据库的实现 1. 复制 ...
分类:
其他好文 时间:
2020-01-01 14:57:20
阅读次数:
117