一主一从,往主节点去写,在从节点去读,可以读到,主从架构就搭建成功了,包含节点间认证口令
启用复制,部署slave node在另外一台服务器上部署从节点;
安装tcl8.6.1-src.tar.gz
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
使用redis-3.2.8.tar.gz
(可以使用最新稳定版)
tar -zxvf redis-3.2.8.tar.gz
cd redis-3.2.8
make && make test && make install
make install
redis utils目录下,有个redis_init_script脚本
将redis_init_script脚本拷贝到linux的/etc/init.d目录中,将redis_init_script重命名为redis_6379,6379是我们希望这个redis实例监听的端口号
修改redis_6379脚本的第6行的REDISPORT,设置为相同的端口号(默认就是6379)
创建两个目录:/etc/redis(存放redis的配置文件),/var/redis/6379(存放redis的持久化文件)
修改redis配置文件(默认在根目录下,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 设置持久化文件的存储位置
让redis跟随系统启动自动启动,在redis_6379脚本中,最上面,加入两行注释
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
接着执行: chkconfig redis_6379 on
slaveof 192.168.1.1 6379
,即可,
也可以使用slaveof命令
**
强制读写分离 基于主从复制架构,实现读写分离redis slave node
只读,默认开启,slave-read-only
开启了只读的redis slave node
,会拒绝所有的写操作,这样可以强制搭建成读写分离的架构配置后,redis-cli 要输入密码,本地测试可以去掉。redis-cli -h 192.168.0.107 -a redis-pass
requirepass
masterauth
/etc/init.d/redis_6379 start
如果从节点启动报错make install
slave节点
并没有同步master节点
数据。redis slave node
没有连接到redis master node
的6379的端口yum install -y telnet
telnet eshop-cache01 6379
解决:在搭建生产环境的集群的时候,不要忘记修改一个配置,bind 127.0.0.1
-> 本地的开发调试的模式,就只能127.0.0.1
本地才能访问到6379的端口,每个redis.conf
中的bind 127.0.0.1
-> 修改为bind自己的ip地址iptables -A INPUT -ptcp --dport 6379 -j ACCEPT
主从节点各自连接,查看从节点数据信息;
redis-cli -h ipaddr
info replication
可以测试在主上写一个key,在从上读