# 概述

特别提醒

版本 Redis server v=3.2.100 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=dd26f1f93c5130ee

查看Redis的版本号:

redis-server --version
1
redis-server -v
1

关键词: 空间换时间

# 主从模式

它主要是基于Redis的主从复制特性架构的。通常我们会设置一个主节点,N个从节点;默认情况下,主节点负责处理使用者的IO操作,而从节点则会对主节点的数据进行备份,并且也会对外提供读操作的处理。主要的特点如下:

  1. 主从模式下,主节点和从节点是读写分离的。使用者不仅可以从主节点上读取数据,还可以很方便的从从节点上读取到数据(负载均衡),这在一定程度上缓解了主机的压力
  2. 必须保证主节点不会宕机,一旦主节点宕机,其它节点不会竞争称为主节点,此时,Redis将丧失写的能力

# 哨兵模式

是基于主从模式做的一定变化,它能够为Redis提供了高可用性。在实际生产中,服务器难免不会遇到一些突发状况:服务器宕机,停电,硬件损坏等。这些情况一旦发生,其后果往往是不可估量的。而哨兵模式在一定程度上能够帮我们规避掉这些意外导致的灾难性后果。其实,哨兵模式的核心还是主从复制。只不过相对于主从模式在主节点宕机导致不可写的情况下,多了一个竞选机制——从所有的从节点竞选出新的主节点。竞选机制的实现,是依赖于在系统中启动一个sentinel进程。

  1. 监控:它会监听主服务器和从服务器之间是否在正常工作。
  2. 通知:它能够通过API告诉系统管理员或者程序,集群中某个实例出了问题。
  3. 故障转移:它在主节点出了问题的情况下,会在所有的从节点中竞选出一个节点,并将其作为新的主节点。

# Redis集群(cluster)🔨

  1. 自动分割数据到不同的节点上,整个集群的部分节点失败或者不可达的情况下能够继续处理命令
  2. Redis 集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽
  3. Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下可能会导致不可预料的错误。

参考文档

Last Updated: 2 years ago