概述
主从架构搭建:
- 一主一从
- 主节点负责写
- 从节点负责读
部署安装步骤
1、启用复制,部署slave node
- 下载tcl8.6.10
wget http://downloads.sourceforge.net/tcl/tcl8.6.10-src.tar.gz
tar -xzvf tcl8.6.10-src.tar.gz
cd /usr/local/tcl8.6.10/unix/
./configure
make && make install
- 使用redis-4.0.11.tar.gz
wget http://download.redis.io/releases/redis-4.0.11.tar.gz
tar -zxvf redis-4.0.11.tar.gz
cd redis-4.0.11
make && make test && make install
redis作为daemon进程去运行的,每次系统启动,redis进程一起启动
拷贝启动脚本
- redis utils目录下,有个redis_init_script脚本
cp utils/redis_init_script /etc/init.d/redis_6379
- 将redis_init_script脚本拷贝到linux的/etc/init.d目录中,重命名为redis_6379,6379是我们希望这个redis实例监听的端口号。
修改端口
- 修改redis_6379脚本的第6行的REDISPORT,设置为相同的端口号(默认就是6379)
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esac
配置系统启动时redis自动启动
centos在redis_6379脚本中,最上面,加入两行注释
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
命令行执行 :chkconfig redis_6379 on
创建配置目录和持久化目录
创建两个目录:/etc/redis(存放redis的配置文件),/var/redis/6379(存放redis的持久化文件)
mkdir -p /etc/redis
mkdir -p /var/redis/6379
- 修改redis配置文件(默认在根目录下,redis.conf),拷贝到/etc/redis目录中,修改名称为6379.conf
cp redis.conf /etc/redis/6379.conf
- 修改redis.conf中的配置参数
daemonize yes 让redis以daemon进程运行
pidfile /var/run/redis_6379.pid 设置redis的pid文件位置
port 6379 设置redis的监听端口号
dir /var/redis/6379 设置持久化文件的存储位置
slave节点配置
vi /etc/redis/6379.conf
slaveof 172.30.0.11 6379 //配置从节点对应的主节点地址和端口
slave-read-only yes //强制读写分离,默认开启
开启了只读的redis slave node,会拒绝所有的写操作,这样可以强制搭建成读写分离的架构
开启远程模式
修redis.conf中的bind地址,默认bind 127.0.0.1 为本地的开发调试的模式
172.30.0.11 //主节点
172.30.0.4 //从节点
集群安全认证
master上启用安全认证:requirepass
requirepass pass1234
master连接口令:masterauth
masterauth pass1234
设置防火墙
在每个节点上都需要设置如下:
iptables -A INPUT -ptcp --dport 6379 -j ACCEPT
读写分离架构测试
先启动主节点的redis实例,再启动从节点的redis实例
cd /etc/init.d/
./redis_6379 start