模拟两台服务器配置 redis 主从配置
主服务器目录: redis-5.0.0-master-6380 端口 6380
从服务器目录 redis-5.0.0-slave-6381 端口 6381
- 安装redis
创建目录
# mkdir -r /app/redis_master-slave
# cd /app/redis_master-slave
# tar -zxvf redis-5.0.0.tar.gz
# cd redis-5.0.0
编译
# make
# 执行安装
# make install
重命名并设置主从redis目录:
# cd /app/redis_master-slave
# mv redis-5.0.0 redis-5.0.0-master-6380
# cp -r redis-5.0.0-master-6380 redis-5.0.0-slave-6381
- 修改配置文件
vim 中查询字符串命令: /bind 查询bind字符串
主服务器配置:
vim redis.conf
# 取消绑定本地ip地址:
bind 127.0.0.1
# 修改保护模式,改成 no:
protected-mode no
# 修改端口
port 6380
# 守护进程(后台启动),改成 yes:
daemonize yes
# 设置连接密码为abc123:
requirepass abc123
# 设置根目录(必须设置目录,而不是文件):
dir /app/redis_master-slave/redis-5.0.0-master-6380/
# 持久化数据库文件, 存放路径会在配置的dir目录下
dbfilename dump.rdb
# 当redis在后台运行的时候,Redis默认会把pid文件放在/var/run/redis.pid,
# 当运行多个redis服务时,需要指定不同的pid文件和端口
pidfile /var/run/redis_6380.pid
# 配置log文件地址,默认值为stdout,标准输出,若后台模式会输出到/dev/null
logfile /app/redis_master-slave/redis-5.0.0-master-6380/redis.log
######################################################################
从服务器配置:
vim redis.conf
# 取消绑定本地ip地址:
bind 127.0.0.1
# 修改保护模式,改成 no:
protected-mode no
# 修改端口
port 6381
# 守护进程(后台启动),改成 yes:
daemonize yes
# 设置连接密码为abc123:
requirepass abc123
# 设置根目录(必须设置目录,而不是文件):
dir /app/redis_master-slave/redis-5.0.0-slave-6381/
# 持久化数据库文件, 存放路径会在配置的dir目录下
dbfilename dump.rdb
# 当redis在后台运行的时候,Redis默认会把pid文件放在/var/run/redis.pid,当运行多个redis服务时,需要指定不同的pid文件和端口
pidfile /var/run/redis_6381.pid
# 配置log文件地址,写绝对路径,默认值为stdout,标准输出,若后台模式会输出到/dev/null
logfile /app/redis_master-slave/redis-5.0.0-slave-6381/redis.log
# 当master服务设置了密码保护时(用requirepass制定的密码), slave服务连接master的密码
masterauth abc123
# 添加同步配置,设置主服务器ip地址和端口
# replicaof <masterip> <masterport>
replicaof 192.168.3.128 6380
- 测试
进入到根目录: # cd /app/redis_master-slave/
启动主服务器: #./redis-5.0.0-master-6380/src/redis-server redis-5.0.0-master-6380/redis.conf &
启动从服务器: # ./redis-5.0.0-slave-6381/src/redis-server redis-5.0.0-slave-6381/redis.conf &
查看启动进程:
查看主从服务器的数据:
主:
从:
redis 设置值:
主:
[app@chezhi redis-5.0.0-master-6380]$ ./src/redis-cli
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set hello redis
OK
127.0.0.1:6379> keys hello
1) "hello"
127.0.0.1:6379>
从:
[app@chezhi redis_master-slave]$ cd redis-5.0.0-slave-6381/
[app@chezhi redis-5.0.0-slave-6381]$ pwd
/app/redis_master-slave/redis-5.0.0-slave-6381
[app@chezhi redis-5.0.0-slave-6381]$ ./src/redis-cli
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> keys *
1) "hello"
127.0.0.1:6379>
主 redis 中设值了 hello,然后从 redis 里面就有了 hello 值