您的位置:首页 > 数据库 > Redis

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

2021-04-24 23:32 721 查看


文章目录

[/ul]


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


(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 密码(自己定义)


在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

在每个节点上都:
在主节点上:

在从节点上:

可以正确拿到值,说明数据同步过来了。

同样我们在slave上可以执行

info replication
,获取到从节点的信息。

至此,主从架构搭建完毕。
此文章仅代表自己(本菜鸟)学习积累记录,或者学习笔记,如有侵权,请联系作者删除。人无完人,文章也一样,文笔稚嫩,在下不才,勿喷,如果有错误之处,还望指出,感激不尽~

技术之路不在一时,山高水长,纵使缓慢,驰而不息。

公众号:秦怀杂货店

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: