环境介绍
master 192.168.1.28 centos 6.4 x64位系统
slave 192.168.1.80 centos 6.4 x64位系统
##############################################
2台服务器都安装redis
安装redis组件tcl
tar zxvf tcl8.6.0-src.tar.gz -C /usr/src/
cd /usr/src/tcl8.6.0/unix
./configure
make && make install
安装redis
tar zxvf redis-2.8.19.tar.gz -C /usr/src/
cd /usr/src/redis-2.8.19/
make PREFIX=/redis install
vi /etc/profile
PATH=$PATH:/redis/bin
source /etc/profile
cd /redis
mkdir log
mkdir data
mkdir conf
cp /usr/src/redis-2.8.19/redis.conf conf/redis-6379.conf
vi conf/redis-6379.conf
pid文件位置
41 pidfile /var/run/redis-6379.pid
客户端连接的超时时间,单位为秒,超时后会关闭连接
74 timeout 50
日志记录等级,4个可选值
98 loglevel warning
日志文件位置
103 logfile /redis/log/redis-6379.log
注释掉以下3行
142 #save 900 1
143 #save 300 10
144 #save 60 10000
设置 Redis 数据保存到disk的策略。save ""表示关闭策略,非常消耗I/O
145 save ""
镜像备份文件的文件名
177 dbfilename dump-6379.rdb
数据库镜像备份的文件放置的路径
187 dir /redis/data/
禁用disk-based(基于硬盘),使用diskless,基于socket,使用网络传输
272 repl-diskless-sync no
当收到第一个请求时,等待多个slave一起来请求之间的间隔时间。
284 repl-diskless-sync-delay 5
设置redis能够使用的最大内存,清除已到期或即将到期的Key
449 maxmemory 300mb
开启数据持久化
appendonly yes
启动redis
redis-server /redis/conf/redis-6379.conf &
查看端口
netstat -anpt | grep redis
######################################################
slave服务器修改配置文件
vi /redis/conf/redis-6379.conf
在以下位置添加一行
# slaveof
slaveof 192.168.1.28 6379
重启redis
pkill redis-server
redis-server /redis/conf/redis-6379.conf &
查看端口
netstat -anpt | grep redis
在master主机写入key
[root@localhost redis]# redis-cli
127.0.0.1:6379> set name aa
OK
127.0.0.1:6379> keys *
1) "name"
在slave主机查看key
[root@localhost conf]# redis-cli
127.0.0.1:6379> keys *
1) "name"
2边的key一样,说明正常。
关于redis持久化问题,上面的配置好了持久化。
如果重启redis,数据会丢失。
测试重启,再次进入,发现数据是空的
[root@localhost redis]# redis-cli
127.0.0.1:6379> keys *
(empty list or set)
再次写入keys,使用save保存
[root@localhost redis]# redis-cli
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set pass b
OK
127.0.0.1:6379> keys *
1) "pass"
127.0.0.1:6379> save
OK
127.0.0.1:6379> exit
重启redis
[root@localhost redis]# pkill redis-server
[root@localhost redis]# redis-server /redis/conf/redis-6379.conf &
[4] 23642
[3] Done redis-server /redis/conf/redis-6379.conf
重新进入redis,查看key,发现key还在。
[root@localhost redis]# redis-cli
127.0.0.1:6379> keys *
1) "pass"