Redis高可用架构配置

跟MySQL一样,Redis也有高可用架构的主从复制。虽然两者的实现方式有些区别,但作用都是大同小异的,都是为一个数据提供了多个副本保证了数据的安全性并且对数据的读写操作进行分离,分担了主节点的读写负载,让Redis的性能更优越。

下面使用同一个主机,不同服务端口的方式对Redis进行主从复制

Redis在Centos7安装方法:https://blog.csdn.net/vincen123/article/details/86548046

1、在Redis的目录里创建两个目录

mkdir /redis/data    
#用于存放redis日志文件的目录


mkdir /redis/config
#用于存放redis配置文件的目录

2、创建主从节点的配置文件(这里只配置一些简单的)

cd /redis/config    
#切换到config目录里创建redis的配置文件

vim redis-6379.conf                #配置Redis主节点的配置
  port 6379                        #启动端口为6379
  daemonize yes                    #以守护进程的方式启动
  pidfile /var/run/redis-6379.pid  #设置pid文件的路径并改名字
  logfile "6379.log"               #设置日志文件的名字
  dbfilename dump-6379.rdb         #设置dump文件的名字
  dir /redis/data                  #设置数据文件的存放位置
保存并退出

vim redis-6380.conf                #配置Redis从节点的配置
  port 6380                        #端口为6380
  daemonize yes
  pidfile /var/run/redis-6380.pid
  logfile "6380.log"
  dbfilename dump-6380.rdb
  slaveof 127.0.0.1 6379         #设置这个节点的主节点IP和端口号
  dir /redis/data
  slave-read-only yes             #从节点只读
保存并退出

vim redis-6381.conf                #配置Redis从节点的配置
  port 6381                        #端口为6381
  daemonize yes
  pidfile /var/run/redis-6381.pid
  logfile "6381.log"
  dbfilename dump-6381.rdb
  slaveof 127.0.0.1 6379
  dir /redis/data
  slave-read-only yes             #从节点只读
保存并退出

3、通过配置文件的方式动态启动Redis服务

redis-server redis-6379.conf    
#启动6379端口的redis服务

redis-server redis-6380.conf
#启动6380端口的redis服务

redis-server redis-6381.conf
#启动6381端口的redis服务


ps -ef | grep redis      #查看redis的进程
root       2709      1  0 20:49 ?        00:00:00 redis-server *:6380
root       2715      1  0 20:49 ?        00:00:00 redis-server *:6379
root       2827      1  0 20:51 ?        00:00:00 redis-server *:6381
root       2856   1392  0 20:51 pts/0    00:00:00 grep --color=auto redis
#可以看到6379,6380,6381这三个端口的服务都已经启动了

4、在主节点中查看主从复制信息(也可以通过 redis-server -p 6379 进入redis客户端然后输入info replication 命令查看)

redis-cli -p 6379 info replication

# Replication
role:master           #角色是主节点
connected_slaves:2    #从节点有两个
slave0:ip=127.0.0.1,port=6380,state=online,offset=420,lag=1  #从节点的信息
slave1:ip=127.0.0.1,port=6381,state=online,offset=420,lag=0  #从节点的信息
master_replid:c33cfa507e0ace7d9087e2edd63e29bb09031e1f
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:420
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576                  #缓冲区的大小
repl_backlog_first_byte_offset:1
repl_backlog_histlen:420

5、在从节点中查看主从复制信息,6380和6381的都大致一样(也可以通过 redis-server -p 6380 进入redis客户端然后输入info replication 命令查看)

redis-cli -p 6380 info replication  #在端口号为6380的客户端中查看主从复制信息

# Replication
role:slave
master_host:127.0.0.1       #主节点的IP
master_port:6379            #主节点的端口
master_link_status:up       #主从复制链路的状态
master_last_io_seconds_ago:7
master_sync_in_progress:0
slave_repl_offset:420
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:c33cfa507e0ace7d9087e2edd63e29bb09031e1f    #主节点的replid
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:420
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:420

6、在主节点插入一些数据

redis-cli -p 6379   #使用客户端连接6379端口的服务端
127.0.0.1:6379> set hello world  
OK
127.0.0.1:6379> set a b
OK
127.0.0.1:6379> set c d
OK
127.0.0.1:6379> set e f
OK

7、在从节点上获取这些value,在6380和6381都是可以的

redis-cli -p 6380
127.0.0.1:6380> get hello
"world"
127.0.0.1:6380> get a 
"b"
127.0.0.1:6380> get c
"d"
127.0.0.1:6380> get e
"f"
127.0.0.1:6380> set o q             #在从节点上进行写数据操作
(error) READONLY You can't write against a read only replica. 
#服务告警,提示这个节点的服务只能进行读操作,不能进行写操作

这里已经完成Redis最基本的主从复制配置了。也可以查看Redis日志来进行验证

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值