前言
前面已经介绍过了redis主从复制实现读写分离的原理;这一篇文章主要介绍下如何部署搭建一套主从复制,主从读写分离的环境。
部署步骤
1.下载
下载tcl8.6.1-src.tar.gz和redis-3.2.8.tar.gz;将两个tar包分别上传到服务器的路径上(/usr/local)。
2.编译安装
依次登陆到服务器上,安装tcl8.6.1-src.tar.gz和redis。
tar -xzvf tcl8.6.1-src.tar.gz
cd /usr/local/tcl8.6.1/unix/
./configure
make && make install
tar -zxvf redis-3.2.8.tar.gz
cd redis-3.2.8
make && make test && make install
3.创建配置路径以及配置文件
1. 将/usr/local/redis-3.2.8/redis/utils目录下的redis_init_script脚本拷贝到/etc/init.d目录中,将redis_init_script重命名为redis_6379。
2. 创建两个目录:/etc/redis(存放redis的配置件),/var/redis/6379(存放持久化文件)
3. 修改redis.conf中的部分配置
daemonize yes 让redis以daemon进程运行
pidfile /var/run/redis_6379.pid 设置redis的pid文件位置
port 6379 设置redis的监听端口号
dir /var/redis/6379 设置持久化文件的存储位置
4. 配置redis跟随系统启动自动启动
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
chkconfig redis_6379 on
5. 集群安全认证配置
在master服务器上启用安全认证,requirepass redispwd
在slave服务器上的redis.conf上,配置 masterauth redispwd
6. 配置强制读写分离
1. 分别在master以及slave的服务器上配置key为bind的属性,value为服务器的ip. 因为默认是127.0.01,只有本地才能访问6379端口。
2. 在slave上配置master的服务器信息【slaveof: 192.168.0.10 6379】
读写分离测试
先启动master服务【redis-cli -h 192.168.0.10 -a redispwd】再启动slave服务【 redis-cli -h 192.168.0.20】。在master上设置值,在slave上可以看到对应的值。