摘要:
Redis集群是Redis提供的分布式数据库方案,集群通过分片来进行数据共享,并提供复制和故障转移。 节点 一个Redis集群通常由多个节点组成,每个节点互相关联,构成一个多个节点组成的集群。可以通过CLUSTER MEET命令完成连接各个节点的工作。 CLUSTER MEET <ip> <port 阅读全文
摘要:
Sentinel(哨兵)是Redis的高可用性的解决方案,由一个或者多个Sentinel实例组成了Sentinel系统可以监视任意多个主服务器,以及这些下属的从服务器。假如master宕机了,Redis本身(包括它的很多客户端)都没有实现自动进行主备切换,而Redis-sentinel本身也是一个独 阅读全文
摘要:
Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项,让服务器去复制另一台服务器,被复制的为master服务器,复制的被成为slave服务器。 旧版本Redis实现复制 同步:将从服务器的数据库状态更新至主服务器的数据库状态。 命令传播:主服务器的数据库状态被修改,导致主从服务 阅读全文
摘要:
RDB 的优点 1.RDB 是一个非常紧凑(compact)的文件,它保存了 Redis 在某个时间点上的数据集。 这种文件非常适合用于进行备份: 比如说,你可以在最近的 24 小时内,每小时备份一次 RDB 文件,并且在每个月的每一天,也备份一个 RDB 文件。 这样的话,即使遇上问题,也可以随时 阅读全文
摘要:
AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的。 AOF持久化保存数据库状态的方法是将服务器执行的SET、SADD、RPUSH三个命令保存到AOF文件中。服务器在启动的时候,可以通过载入和执行APF文件中保存的命令来还原服务器关闭之前的数据库状态。 实现 AOF持久化功能的实 阅读全文
摘要:
RDB持久化功能,可以将Redis在内存中的数据库状态保存到磁盘里面,既可以手动执行,也可以根据配置定期执行,该功能可以将某一个时间点上的数据库状态保存带一个RDB文件上。RDB文件是一个经过压缩的二进制文件 创建和载入 两个Redis命令回生成RDB文件,一个是SAVE,一个是BGSAVE SAV 阅读全文
摘要:
Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中,db数组中每个项都是一个redis.h/redisDb结构,每个redisDb结构代表一个数据库,默认redis服务器会创建16个数据库。 数据库键空间 Redis是一个键值对数据库服务器,服务器中 阅读全文
摘要:
前面几篇文章,我们一起学习了redis用到的所有主要数据结构,比如简单动态字符串(sds)、双端链表、字典、压缩列表、整数集合等等。 redis并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统,这个系统包含字符串对象、列表对象、哈希对象、集合对象和有序集合对象这五 阅读全文
摘要:
整数集合 整数集合(intset)是集合键的底层实现之一,当一个集合只包含 整数值元素,并且这个集合的元素数量不多时,Redis就会使用郑书记和作为集合键的底层实现。 整数集合的实现 整数集合是redis用于保存整数值的集合抽象数据结构,它可以可以保存类型位int16_t、int32_t、int64 阅读全文
摘要:
字典,又称为符号表(symbol table)、关联数组(associative array)或映射(map),是一种用于保存键值对的抽象数据结构。 字典经常作为一种数据结构内置在很多高级编程语言里面,但redis所使用的C语言并没有内置这种数据结构,因此Redis构建了自己的字典实现。 字典在re 阅读全文