IP:192.168.225.128 环境:centos7
# gcc -version
或者 # g++ --version
yum install -y gcc
wget http://download.redis.io/releases/redis-3.2.10.tar.gz
# tar -zxvf redis-3.2.10.tar.gz
# mv redis-3.2.10 /usr/local/redis
# cd redis
# make
# make test
遇到报错
Executing test client: NOREPLICAS Not enough good slaves to write..
可以修改文件tests/integration/replication-2.tcl,将after 1000改为after 10000以延长等待时间。
# make test
# make install PREFIX=/usr/local/redis PREFIX安装指定目录 否则安装到/usr/local/bin里面了
bind 192.168.225.128
port 6379
timeout 0
daemonize yes
pidfile /var/run/redis6379.pid
loglevel debug
logfile /var/log/redis6379.log
# cd /usr/local/redis6379/bin
# ./redis-server ../redis6379.conf &
# cd /usr/local/redis6380/bin
# ./redis-server ../redis6380.conf &
安装位置:/usr/local/redis6380
配置文件:/usr/local/redis6380/redis6380.conf
启动后pid文件:/var/run/redis_6380.pid
日志文件:/var/log/redis6380.log
数据文件位置:/data/redis6380/
(一个服务器上启动两个redis,端口为6379和6380, 192.168.225.128:6379主,192.168.225.128:6380从
不需要改动
vi /etc/redis/6380.conf
slave-serve-stale-data yes
# slaveof <masterip> <masterport>下面添加一句
slaveof 192.168.225.128 6379
先关闭redis
# redis-cli -h 192.168.225.128 -p 6380 shutdown
# cd /usr/local/redis6379/
# bin/redis-server redis6379.conf &
# cd /usr/local/redis6380/
# bin/redis-server redis6380.conf &
# ps -ef |grep redis
[root@bogon redis6379]# redis-cli -h 192.168.225.128 -p 6379
192.168.225.128:6379> set ma right
OK
192.168.225.128:6379> set Li class2
OK
192.168.225.128:6379> keys *
1) "ma"
2) "fangchan"
3) "Li"
192.168.225.128:6379>
[root@bogon redis6379]# redis-cli -h 192.168.225.128 -p 6380
192.168.225.128:6380> keys *
1) "ma"
2) "Li"
3) "fangchan"
192.168.225.128:6380>
192.168.225.128:6380> set lll beaty
(error) READONLY You can't write against a read only slave.
192.168.225.128:6379主,192.168.225.128:6380从
# redis-cli -h 192.168.225.128 -p 6379 shutdown
[root@bogon redis6379]# redis-cli -h 192.168.225.128 -p 6380 slaveof NO ONE
OK
[root@bogon redis6379]# redis-cli -h 192.168.225.128 -p 6380
192.168.225.128:6380> set apu new
OK
192.168.225.128:6380> get apu
"new"
192.168.225.128:6380>
从库可以写入,切换成功
[root@bogon redis6379]# redis-cli -h 192.168.225.128 -p 6380
192.168.225.128:6380> set apu new
OK
192.168.225.128:6380> get apu
"new"
192.168.225.128:6380> save
# cd /usr/local/redis6379
# bin/redis-server redis6379.conf &
[root@bogon redis6379]# redis-cli -h 192.168.225.128 -p 6380 slaveof 192.168.225.128 6379
OK
之前在从库中添加的key,此时在主库6379中都可以查看
主redis6379写入,从redis6380可正常同步; 从redis只支持读,不支持写入