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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2022-08-08 postgresql大表加字段