redis主从部署(非哨兵模式)

环境:
OS:Centos 7
redis:4.0.14

 

################################主库部署#######################
1.解压介质并安装
[root@localhost soft]# tar -xvf redis-4.0.14.tar.gz
[root@localhost soft]# cd redis-4.0.14
[root@localhost redis-4.0.14]# make
[root@localhost redis-4.0.14]# make test
root@localhost redis-4.0.14]# cd src
[root@localhost src]# make PREFIX=/usr/local/services/redis install

拷贝 ./scr/redis-trib.rb到指定的目录,该脚本是用来创建集群用的
[root@host134 redis-4.0.14]# cd src
[root@localhost src]# cp redis-trib.rb /usr/local/services/redis/

 

2.创建目录并修改相应权限
[root@localhost src]# mkdir -p /home/middle/redis/conf
[root@localhost src]# mkdir -p /home/middle/redis/logs
[root@localhost src]# mkdir -p /home/middle/redis/run
[root@localhost src]# mkdir -p /home/middle/redis/data

 

3.修改配置文件
vi /home/middle/redis/conf/16379.conf
内如如下:

复制代码
daemonize yes
pidfile /home/middle/redis/run/redis-16379.pid
port 16379
tcp-backlog 511
timeout 300
tcp-keepalive 300
loglevel notice
logfile "/home/middle/redis/logs/redis-16379.log"
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump-16379.rdb
dir /home/middle/redis/data
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly yes
appendfilename "redis-16379.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
# Generated by CONFIG REWRITE
masterauth "hxl123"
requirepass "hxl123"
protected-mode yes
maxmemory-policy allkeys-lfu
maxmemory 9gb
maxmemory-samples 5
复制代码

 

4.启动
/usr/local/services/redis/bin/redis-server /home/middle/redis/conf/16379.conf

5.登录
/usr/local/services/redis/bin/redis-cli -h 192.168.1.134 -a hxl123 -p 16379

 

############################部署从库############################

1.安装步骤与主库一致

 

2.配置文件

vi /home/middle/redis/conf/16379.conf
内如如下:

复制代码
daemonize yes
pidfile /home/middle/redis/run/redis-16379.pid
port 16379
tcp-backlog 511
timeout 300
tcp-keepalive 300
loglevel notice
logfile "/home/middle/redis/logs/redis-16379.log"
databases 16
save 1800 10 ##30分钟 有10个key发生改变
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump-16379.rdb
dir /home/middle/redis/data
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly yes
appendfilename "redis-16379.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
# Generated by CONFIG REWRITE
masterauth "hxl123"
requirepass "hxl123"
protected-mode yes
maxmemory-policy allkeys-lfu
maxmemory 9gb
maxmemory-samples 5
slaveof 192.168.1.134 16379
复制代码

 

说明:
masterauth和requirepass 需要保持与主库一致

requirepass作用:客户端登录密码,主从库可以不同
masterauth作用:主要是针对master对应的slave节点设置的,在slave节点数据同步的时候用到.

 

3.启动
/usr/local/services/redis/bin/redis-server /home/middle/redis/conf/16379.conf

关闭
/usr/local/services/redis/bin/redis-cli -h 192.168.1.135 -a hxl123 -p 16379 shutdown

登录
/usr/local/services/redis/bin/redis-cli -h 192.168.1.135 -a hxl123 -p 16379

 

查看配置(info)

# Replication
role:slave
master_host:192.168.1.134
master_port:16379
master_link_status:up
master_last_io_seconds_ago:5

 

4.登录主库写入数据
/usr/local/services/redis/bin/redis-cli -h 192.168.1.134 -a hxl123 -p 16379
192.168.1.134:16379> set name hxl
OK
192.168.1.134:16379> set age 40
OK

从库查看
/usr/local/services/redis/bin/redis-cli -h 192.168.1.135 -a hxl123 -p 16379


192.168.1.135:16379> get name
"hxl"
192.168.1.135:16379> get age
"40"

 

登录主库查看复制信息

复制代码
192.168.1.134:16379> info Replication
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.1.135,port=16379,state=online,offset=421,lag=1
master_replid:7b8a359f6694b7dd932ff83b9b556e97e81e894d
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:421
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:421
复制代码

 

 

###########################主从切换#################################
1.从库切换成主库上执行:
当前从库上执行:
/usr/local/services/redis/bin/redis-cli -h 192.168.1.135 -a hxl123 -p 16379
slaveof no one

 

2.主库切换成从库:
当前主库上执行:
/usr/local/services/redis/bin/redis-cli -h 192.168.1.135 -a hxl123 -p 16379
slaveof 192.168.1.135 16379

如上命令都不需要重启redis

但是为了重启剩下需要修改配置
a.原来的从库配置去掉 slaveof 192.168.1.134 16379
b.主库的配置加上 slaveof 192.168.1.135 16379

 

posted @   slnngk  阅读(64)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2022-08-08 postgresql大表加字段
点击右上角即可分享
微信分享提示