Table of Contents 1. Redis简介Redis是一个开源的内存中数据结构存储,它可以用作数据库、缓存和消息代理。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)复制。 Redis支持主从复制。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。 2. Redis配置
默认绑定的本地的6379端口,这样就违背了我们想使用它的初衷了。
打开所有接口的6379端口
可以看到,我们刚才修改的接口信息已经生效。接下来我们将node2也配置一下,如上步骤,不赘余。 3. Redis主从复制3.1 配置node2为node1的slave
3.2 测试
通过测试可以看到,我们在node1中写入的数据,node2已经复制。但是要注意的是node2为slave节点,即只读节点,无法写入。 4. Redis高可用(哨兵)在做该实验之前,我们先做好准备工作。之前我们创建了两个节点,一个master节点,一个slave节点。但是在搭建高可用时,我们会用到三个节点,因此我们再创建一个slave节点。步骤如上node2,不赘余。 4.1 Redis简介Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance)该系统执行以下三个任务:
自动故障迁移(Automatic failover):当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器; 当客户端试图连接失效的主服务器时, 集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替失效服务器。 4.2 Redis配置
指示 Sentinel 去监视一个名为 mymaster 的主服务器, 这个主服务器的 IP 地址为 192.168.1.11 , 端口号为 6379 , 而将这个主服务器判断为失效至少需要 2 个 Sentinel 同意 (只要同意 Sentinel 的数量不达标,自动故障迁移就不会执行)。 down-after-milliseconds 选项指定了 Sentinel 认为服务器已经断线所需的毫秒数。 接下来就是把三个节点都配置上,可以一个节点接一个节点的配置,也可以直接复制。但是要注意:必须在开启哨兵前复制,因为当开启哨兵后,配置文件中会生成一个session-id,而每个哨兵的id都必须唯一,所以必须在未开启哨兵时复制。
4.3 测试
通过哨兵信息,我们可以看到,master节点已经由node1转换为node2。
恢复node1的redis,node3查看哨兵状态可以看到,node1恢复,成为node2的从节点 5. Redis集群5.1 集群的配置搭建集群的我们需要一些运行在集群模式的Redis实例. 这意味这集群并不是由一些普通的Redis实例组成的,集群模式需要通过配置启用,开启集群模式后的Redis实例便可以使用集群特有的命令和特性了。
配置中的端口号(日志,pid文件目录)从 7000 改为与文件夹名字相同的号码
其中--cluster-replicas 1表示,一个master配一个slave 5.2 测试在7000写入test时,重定向到了7001,在7002读取test时,也重定向到7001。也就是说我们实际存储的位置就是在7001上。
发现开启7001后还是获取不到数据
数据获取成功~没错,我们的master已经重定向到7005,因此7005开启数据复制恢复正常~~ |
|
来自: 昵称70781666 > 《待分类》