Redis事务
Redis中的事务和关系型数据库有点区别,只能够保证命令都能执行
;
还有个Watch命令
,可以保证数据的一致性
,保证数据在事务操作之前是没有被修改的
持久化
RDB快照:
执行个save
或者bgsave
命令,会把当前内存中的数据存在个RDB文件
中。
执行shutdown命令的时候,服务器会自动发送一条save命令来完成快照操作
AOF:
记录所有的写操作命令到AOF文件中,恢复数据时,把原来所有的写操作命令全部执行一遍
RDB速度更快,丢失的数据会更多,AOF安全点,丢失最多丢失一秒钟的数据
主从复制:
主从复制解决单个Redis的能力,扩展了单体Redis的功能,又称为读写分离,主写从读
全量复制: 从节点发送sync
同步命令,主节点得到后执行bgsave
命令,得到个RDB
文件,发送给从节点去同步数据
增量复制: 主节点执行写命令,会把该命令发送给从节点,接收并执行收到的写命令,里面有个复制偏移量,用来保证主从之间的一致性
哨兵模式
哨兵模式解决的是主从复制中,主节点挂掉了不会重新选举的这种问题
当主节点挂掉之后,会重新在剩余的从节点中,选举个新的节点作为新的主节点。
内部原理:
哨兵进程启动时,会与跟主节点建立两个连接,一个用来向某个频道发送消息,一个用来做发送消息的,每隔10秒钟发送info
命令,每隔2秒向频道发送消息
,每秒钟发送ping命令
;来判断主节点,从节点,哨兵进程是否还活着。
主观下线,客观下线,领头哨兵的选举,去做故障恢复
Redis集群
Redis集群就是多个主从,每个主从保存整个数据的一部分
引用了集群策略,16384个哈希槽