架构实战:(二)Redis读写分离与主从架构

架构实战

(一)Redis采用主从架构的原因 

(二)Redis读写分离与主从架构


 

首先搭建Redis主从架构,需要搭建centos集群,每台服务器上安装Redis和其他必备环境,例如:

1、安装centos

    a 配置网络环境

    b 配置hosts,加入所有centos的ip

    c 配置防火墙,允许6379端口通讯

    c 配置yum

2、在每台centos上安装java 和 perl

3、配置每台centos为免密码互相通信

4、最重要的,安装redis(本文使用3.2.8版本),并且安装 tcl

 

下面将详细记录Redis的主从配置过程:

(1)在redis安装目录 utils 文件夹下,有个redis_init_script脚本

(2)将redis_init_script脚本拷贝到linux的/etc/init.d目录中,将redis_init_script重命名为redis_6379,6379是我们希望这个redis实例监听的端口号

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

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

(5)修改redis配置文件(默认在根目录下redis.conf),拷贝到/etc/redis目录中,修改名称为redis_6379.conf

(6)修改redis.conf中的配置为生产环境

daemonize yes                         让redis以daemon进程运行
pidfile  /var/run/redis_6379.pid      设置redis的pid文件位置
port    6379                          设置redis的监听端口号
dir  /var/redis/6379                  设置持久化文件的存储位置
bind  xx.xx.xx.xx                     将127.0.0.1修改为本机地址

(7)启动redis,执行

#cd /etc/init.d
#chmod 777 redis_6379
#./redis_6379 start

(8)确认redis进程是否启动   

#ps -ef | grep redis

(9)让redis跟随系统启动自动启动

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

# chkconfig: 2345 90 10

# description: Redis is a persistent key-value database

chkconfig redis_6379 on

REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/redis_${REDISPORT}.conf"

 

(10) 主机跟备机的配置不相同的部分(redis_6379.conf)

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

-->备机修改: slave_read_only yes

配置主备机之间的安全认证

-->主机修改: requirepass   redis-pass

-->备机修改: masterauth redis-pass

 

(11) 启动备机的备份设置

进入redis命令行,执行

redis> SLAVEOF 127.0.0.1 6379
OK

如果提示连接错误,可以先把所有的redis都shutdown,然后按照先启动主节点,再启动从节点的顺序启动redis。

(12)查询命令

#redis-cli -h ipaddr
#info replication

 


问题收集:

Redis (error) NOAUTH Authentication required.解决方法

127.0.0.1:6379> set name "hello"  
(error) NOAUTH Authentication required.  
127.0.0.1:6379> (error) NOAUTH Authentication required.  
(error) ERR unknown command '(error)'  
127.0.0.1:6379> auth "root"  

 

 Redis-benchmark压力测试

redis-benchmark -h 127.0.0.1 -p 6379 -q -d 100  
SET/GET 100 bytes 检测host为127.0.0.1 端口为6379的redis服务器性能

redis-benchmark -h 127.0.0.1 -p 6379 -c 5000 -n 100000 
5000个并发连接,100000个请求,检测host为127.0.0.1 端口为6379的redis服务器性能 

 

 

posted @ 2017-09-03 12:54  三平行者  阅读(585)  评论(1)    收藏  举报