(十一)高并发redis学习笔记:部署高可用的redis主从架构
文章目录
[/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,获取到从节点的信息。
至此,主从架构搭建完毕。
此文章仅代表自己(本菜鸟)学习积累记录,或者学习笔记,如有侵权,请联系作者删除。人无完人,文章也一样,文笔稚嫩,在下不才,勿喷,如果有错误之处,还望指出,感激不尽~
技术之路不在一时,山高水长,纵使缓慢,驰而不息。
公众号:秦怀杂货店
- redis 学习笔记(4)-HA高可用方案Sentinel配置
- Java并发读书学习笔记(十一)——原子变量与非阻塞同步机制
- (十)高并发redis学习笔记:redis主从复制原理、断点续传、无磁盘化复制、过期key处理
- Redis——LAMP环境下的安装与部署---学习笔记(零)
- (九)高并发redis学习笔记:redis主从架构以及读写分离如何承载读高并发
- 并发编程实战学习笔记(十一)-原子变量与非阻塞同步机制
- (八)高并发redis学习笔记:redis企业级数据备份方案是怎么样的?
- redis 学习笔记(4)-HA高可用方案Sentinel配置
- Redis学习笔记(十一) 服务器
- (七)高并发redis学习笔记:redis的AOF持久化机制深入理解以及数据恢复实验
- Redis 学习笔记(十一)基数统计(HyperLogLog)
- Redis 学习笔记(十三)Redis Sentinel 介绍与部署
- Docker学习笔记 - Docker容器内部署redis
- redis 学习笔记(4)-HA高可用方案Sentinel配置
- 并发编程学习笔记之构建自定义的同步工具(十一)
- (六)高并发redis学习笔记:redis的RDB持久化机制配置以及数据恢复的实验
- Rancher Server HA的高可用部署实验-学习笔记
- Redis学习笔记-Redis安装部署
- Redis学习笔记(十一) 案例:省份列表(下)
- Java并发编程实战(学习笔记十一 第十二章 并发程序的测试)