目录
单机版
特点:简单 问题: 1、内存容量有限 2、处理能力有限 3、无法高可用。
主从复制
Redis 的复制(replication)功能允许用户根据一个 Redis 服务器来创建任意多个该服务器的复制品,其中被复制的服务器为主服务器(master),而通过复制创建出来的服务器复制品则为从服务器(slave)。 只要主从服务器之间的网络连接正常,主从服务器两者会具有相同的数据,主服务器就会一直将发生在自己身上的数据更新同步 给从服务器,从而一直保证主从服务器的数据相同。 特点:
- master/slave 角色
- master/slave 数据相同
- 降低 master 读压力在转交从库
问题:
- 无法保证高可用:master挂了之后,服务就不可用了;同时,如果没有配置Redis持久化,Redis内部存储的数据都会丢失。
- 没有解决 master 写的压力
主从复制+哨兵(sentinel)
Redis sentinel 是一个分布式系统中监控 redis 主从服务器,并在主服务器下线时自动进行故障转移。其中三个特性:
- 监控(Monitoring): Sentinel 会不断地检查你的主服务器(master)和从服务器(slaver)是否运作正常。
- 提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。
- 自动故障迁移(Automatic failover): 主从切换,当一个主服务器(master)不能正常工作时, Sentinel 会开始一次自动故障迁移操作。Sentinel进程可以连通并投票选取新的master时,实现主从切换。
特点:
- 保证高可用
- 监控各个节点
- 自动故障迁移
缺点:
- 主从模式,切换需要时间丢数据
- 没有解决 master 写的压力