(十一)高并发redis学习笔记:部署高可用的redis主从架构

文章目录

  • 1、如何搭建主从架构
    • 1.1 tcl安装
    • 1.2 redis环境安装
    • 1.3 相关配置测试细节
      • 1.3.1 强制读写分离
      • 1.3.2 集群安全认证
      • 1.3.3 读写分离架构的测试

1、如何搭建主从架构

我们知道了主从复制的原理之后,关键是怎么搭建呢???我想当我们学会了这些之后,都知道概念了,都想实际的尝试一下。

本节的目的:
1.搭建一主一从架构
2.测试:往主节点去写,在从节点去读,可以读到,主从架构就搭建成功了

1.1 tcl安装

首先需要在安装好java环境的机器上操作,再安装tcl

wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
tar -xzvf tcl8.6.1-src.tar.gz
cd  /usr/local/tcl8.6.1/unix/
./configure  
make && make install

1.2 redis环境安装

使用redis-3.2.8.tar.gz(截止2017年4月的最新稳定版)

cd /usr/local/
tar -zxvf redis-3.2.8.tar.gz
cd redis-3.2.8
make && make test && make install

(1)redis utils目录下,有个redis_init_script脚本(这个是redis已经帮我们准备好的文件)
(2)将redis_init_script脚本拷贝到linux的/etc/init.d目录中,将redis_init_script重命名为redis_6379,6379是我们希望这个redis实例监听的端口号(这样做主要是为了区分哪些守护进程会占用那些端口,不会显得很混乱)
在redis的安装目录下:

cp utils/redis_init_script /etc/init.d/
cd /etc/init.d
mv redis_init_script redis_6379

!!!注意:上面的etc是虚拟机的根目录下的etc,也就是启动机器时的配置

(3)修改redis_6379(初始化脚本)脚本的第6行的REDISPORT,设置为相同的端口号(默认就是6379)

vi redis_6379

(4)创建两个目录:/etc/redis(存放redis的配置文件),/var/redis/6379(存放redis的持久化文件)

mkdir /etc/redis
mkdir /var/redis
mkdir /var/redis/6379

!!!注意:上面的etc是虚拟机的根目录下的etc,也就是启动机器时的配置
(5)修改redis配置文件(默认在根目录下,redis.conf),拷贝到/etc/redis目录中,修改名称为6379.conf(这样做的原因是虚拟机开启的时候会自动读取init.d文件,里面有redis的初始化配置文件redis_6379,这个文件里面配置了会启动redis,同时读取 /etc/redis下的配置文件,这样就可以跑起来了)

cd /usr/local/redis-3.2.8
cp redis.conf /etc/redis/6379.conf

(十一)高并发redis学习笔记:部署高可用的redis主从架构_第1张图片
(6)修改redis.conf中的部分配置为生产环境

cd /etc/redis/
vi 6379.conf
daemonize 	yes							让redis以daemon进程(守护进程)运行
pidfile		/var/run/redis_6379.pid 	设置redis的pid文件位置
port		6379						设置redis的监听端口号
dir 		/var/redis/6379				设置持久化文件的存储位置

总结:

  • redis_6379是初始化脚本,启动时会自动加载init.d中的这个文件,这个文件中配置了redis配置文件的路径,也就是 /etc/redis目录中,名称为6379.conf的文件

(7)启动redis,执行

cd /etc/init.d
chmod 777 redis_6379

在redis_6379脚本中,最上面,加入两行注释

# chkconfig:   2345 90 10
# description:  Redis is a persistent key-value database
chkconfig redis_6379 on

在slave node上配置:

vi /etc/redis/6379.conf
slaveof 192.168.1.1 6379

也可以使用slaveof命令

1.3 相关配置测试细节

1.3.1 强制读写分离

基于主从复制架构,实现读写分离
redis slave node只读,默认开启,slave-read-only

开启了只读的redis slave node,会拒绝所有的写操作,这样可以强制搭建成读写分离的架构

1.3.2 集群安全认证

master上启用安全认证,

requirepass 密码(自己定义)

(十一)高并发redis学习笔记:部署高可用的redis主从架构_第2张图片
在slave上配置连接口令

masterauth 密码(和上面的一样)

在搭建生产环境的集群的时候,不要忘记修改一个配置,bind,在6379.conf
bind 127.0.0.1 属于本地的开发调试的模式,就只能127.0.0.1本地才能访问到6379的端口
而且这个ip不要搞错了,要不就和我一样惨,找了一晚上,发现自己写错了ip…

1.3.3 读写分离架构的测试

先启动主节点,再启动从节点,记得关掉防火墙

systemctl stop iptables 
systemctl stop ip6tables
systemctl disable iptables
systemctl disable ip6tables
systemctl stop firewalld.service

在每个节点上都:
在主节点上:
(十一)高并发redis学习笔记:部署高可用的redis主从架构_第3张图片

在从节点上:
(十一)高并发redis学习笔记:部署高可用的redis主从架构_第4张图片
可以正确拿到值,说明数据同步过来了。

同样我们在slave上可以执行info replication,获取到从节点的信息。
(十一)高并发redis学习笔记:部署高可用的redis主从架构_第5张图片

至此,主从架构搭建完毕。

你可能感兴趣的:(redis)