Centos7/Centos8 Redis6主从配置

1、准备数据库目录

mkdir -p /data/redis/{6379,6380}

2、设置配置文件

vi /data/redis/6379.conf
vi /data/redis/6380.conf

配置文件内容如下
6379.conf

# redis配置
# 监听IP
bind 127.0.0.1

protected-mode yes

# 监听端口
port 6379

tcp-backlog 511

# 一个客户端空闲多少秒后关闭连接。(0代表禁用,永不关闭)
timeout 0

tcp-keepalive 300

#是否后台启动 yes no Redis默认是不作为守护进程来运行的
daemonize yes

supervised no

# 进程名及地址
pidfile /var/run/redis_6379.pid

# 设置服务器调试等级 debug -很多信息,对开发/测试有用 verbose -很多精简的有用信息,但是不像debug等级那么多
# notice (适量的信息,基本上是你生产环境中需要的程度) warning (只有很重要/严重的信息会记录下来)
loglevel notice

# 指明日志文件名。也可以使用"stdout"来强制让Redis把日志信息写到标准输出上。
# 注意:如果Redis以守护进程方式运行,而你设置日志显示到标准输出的话,那么日志会发送到 /dev/null
logfile /data/redis/6379.log

# 要使用系统日志记录器很简单,只要设置 “syslog-enabled” 为 “yes” 就可以了
# syslog-enabled no

# 指明syslog身份
# syslog-ident redis

# 指明syslog的设备。必须是一个用户或者是 LOCAL0 ~ LOCAL7 之一
# syslog-facility local0

# 设置数据库个数。默认数据库是 DB 0,你可以通过SELECT WHERE dbid(0~’databases’ - 1)来为每个连接使用不同的数据库
databases 16

always-show-logo yes

save 900 1
save 300 10
save 60 10000

stop-writes-on-bgsave-error yes

# 当导出到 .rdb 数据库时是否用LZF压缩字符串对象。
# 默认设置为 “yes”,所以几乎总是生效的。
# 如果你想节省CPU的话你可以把这个设置为 “no”,但是如果你有可压缩的key的话,那数据文件就会更大了。
rdbcompression yes
rdbchecksum yes

# 数据库的文件名
dbfilename dump.rdb

rdb-del-sync-files no

# 数据库存放目录
# 数据库会写到这个目录下,文件名就是上面的 “dbfilename” 的值。
# 累加文件也放这里。
# 注意你这里指定的必须是目录,不是文件名
dir /data/redis/6379

#主从设置
# replicaof 127.0.0.1 6379

# 如果master设置了密码(通过下面的 “requirepass” 选项来配置),那么slave在开始同步之前必须进行身份验证,否则它的同步请求会被拒绝
masterauth !QAZxsw2#EDC

replica-serve-stale-data yes

#从库只读
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-diskless-load disabled
# repl-timeout 60
repl-disable-tcp-nodelay no
# repl-backlog-size 1mb
# repl-backlog-ttl 3600
replica-priority 100
# min-replicas-to-write 3
# min-replicas-max-lag 10

acllog-max-len 128

# aclfile /etc/redis/users.acl

# 要求客户端在处理任何命令时都要验证身份和密码。
# 这在你信不过来访者时很有用。
# 为了向后兼容的话,这段应该注释掉。而且大多数人不需要身份验证(例如:它们运行在自己的服务器上。)
# 警告:因为Redis太快了,所以居心不良的人可以每秒尝试150k的密码来试图破解密码。
# 这意味着你需要一个高强度的密码,否则破解太容易了。
requirepass !QAZxsw2#EDC

# 命令重命名
# 在共享环境下,可以为危险命令改变名字。比如,你可以为 CONFIG 改个其他不太容易猜到的名字,这样你自己仍然可以使用,而别人却没法做坏事了。
# 例如:rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
# rename-command CONFIG ""

# maxclients 10000
# maxmemory <bytes>
# maxmemory-policy noeviction
# maxmemory-samples 5
# replica-ignore-maxmemory yes
# active-expire-effort 1

lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no

lazyfree-lazy-user-del no

# io-threads 4
# io-threads-do-reads no
# 指定持久化方式
# 默认情况下,Redis是异步的把数据导出到磁盘上。这种情况下,当Redis挂掉的时候,最新的数据就丢了。
# 如果不希望丢掉任何一条数据的话就该用纯累加模式:一旦开启这个模式,Redis会把每次写入的数据在接收后都写入 appendonly.aof 文件。
# 每次启动时Redis都会把这个文件的数据读入内存里。
# 注意,异步导出的数据库文件和纯累加文件可以并存(你得把上面所有"save"设置都注释掉,关掉导出机制)。
appendonly yes

# 纯累加文件名字
appendfilename "appendonly.aof"

# fsync() 请求操作系统马上把数据写到磁盘上,不要再等了
# Redis支持三种不同的模式:
# no:不要立刻刷,只有在操作系统需要刷的时候再刷。比较快。
# always:每次写操作都立刻写入到aof文件。慢,但是最安全。
# everysec:每秒写一次。折衷方案。

# appendfsync always
appendfsync everysec
# appendfsync no

no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

aof-load-truncated yes

aof-use-rdb-preamble yes

lua-time-limit 5000

# cluster-enabled yes
# cluster-config-file nodes-6379.conf
# cluster-node-timeout 15000
# cluster-replica-validity-factor 10
# cluster-migration-barrier 1
# cluster-require-full-coverage yes
# cluster-replica-no-failover no
# cluster-allow-reads-when-down no
# * cluster-announce-ip
# * cluster-announce-port
# * cluster-announce-bus-port
# cluster-announce-ip 10.1.1.5
# cluster-announce-port 6379
# cluster-announce-bus-port 6380

slowlog-log-slower-than 10000

slowlog-max-len 128

latency-monitor-threshold 0

notify-keyspace-events ""
# gopher-enabled no
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes

client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60

# client-query-buffer-limit 1gb
# proto-max-bulk-len 512mb
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
# lfu-log-factor 10
# lfu-decay-time 1

# activedefrag no
# active-defrag-ignore-bytes 100mb
# active-defrag-threshold-lower 10
# active-defrag-threshold-upper 100
# active-defrag-cycle-min 1
# active-defrag-cycle-max 25
# active-defrag-max-scan-fields 1000

jemalloc-bg-thread yes

6380.conf

# redis配置
# 监听IP
bind 127.0.0.1

protected-mode yes

# 监听端口
port 6380

tcp-backlog 511

# 一个客户端空闲多少秒后关闭连接。(0代表禁用,永不关闭)
timeout 0

tcp-keepalive 300

#是否后台启动 yes no Redis默认是不作为守护进程来运行的
daemonize yes

supervised no

# 进程名及地址
pidfile /var/run/redis_6380.pid

# 设置服务器调试等级 debug -很多信息,对开发/测试有用 verbose -很多精简的有用信息,但是不像debug等级那么多
# notice (适量的信息,基本上是你生产环境中需要的程度) warning (只有很重要/严重的信息会记录下来)
loglevel notice

# 指明日志文件名。也可以使用"stdout"来强制让Redis把日志信息写到标准输出上。
# 注意:如果Redis以守护进程方式运行,而你设置日志显示到标准输出的话,那么日志会发送到 /dev/null
logfile /data/redis/6380.log

# 要使用系统日志记录器很简单,只要设置 “syslog-enabled” 为 “yes” 就可以了
# syslog-enabled no

# 指明syslog身份
# syslog-ident redis

# 指明syslog的设备。必须是一个用户或者是 LOCAL0 ~ LOCAL7 之一
# syslog-facility local0

# 设置数据库个数。默认数据库是 DB 0,你可以通过SELECT WHERE dbid(0~’databases’ - 1)来为每个连接使用不同的数据库
databases 16

always-show-logo yes

save 900 1
save 300 10
save 60 10000

stop-writes-on-bgsave-error yes

# 当导出到 .rdb 数据库时是否用LZF压缩字符串对象。
# 默认设置为 “yes”,所以几乎总是生效的。
# 如果你想节省CPU的话你可以把这个设置为 “no”,但是如果你有可压缩的key的话,那数据文件就会更大了。
rdbcompression yes
rdbchecksum yes

# 数据库的文件名
dbfilename dump.rdb

rdb-del-sync-files no

# 数据库存放目录
# 数据库会写到这个目录下,文件名就是上面的 “dbfilename” 的值。
# 累加文件也放这里。
# 注意你这里指定的必须是目录,不是文件名
dir /data/redis/6380

#主从设置
replicaof 127.0.0.1 6379

# 如果master设置了密码(通过下面的 “requirepass” 选项来配置),那么slave在开始同步之前必须进行身份验证,否则它的同步请求会被拒绝
masterauth !QAZxsw2#EDC

replica-serve-stale-data yes

#从库只读
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-diskless-load disabled
# repl-timeout 60
repl-disable-tcp-nodelay no
# repl-backlog-size 1mb
# repl-backlog-ttl 3600
replica-priority 100
# min-replicas-to-write 3
# min-replicas-max-lag 10

acllog-max-len 128

# aclfile /etc/redis/users.acl

# 要求客户端在处理任何命令时都要验证身份和密码。
# 这在你信不过来访者时很有用。
# 为了向后兼容的话,这段应该注释掉。而且大多数人不需要身份验证(例如:它们运行在自己的服务器上。)
# 警告:因为Redis太快了,所以居心不良的人可以每秒尝试150k的密码来试图破解密码。
# 这意味着你需要一个高强度的密码,否则破解太容易了。
requirepass !QAZxsw2#EDC

# 命令重命名
# 在共享环境下,可以为危险命令改变名字。比如,你可以为 CONFIG 改个其他不太容易猜到的名字,这样你自己仍然可以使用,而别人却没法做坏事了。
# 例如:rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
# rename-command CONFIG ""

# maxclients 10000
# maxmemory <bytes>
# maxmemory-policy noeviction
# maxmemory-samples 5
# replica-ignore-maxmemory yes
# active-expire-effort 1

lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no

lazyfree-lazy-user-del no

# io-threads 4
# io-threads-do-reads no
# 指定持久化方式
# 默认情况下,Redis是异步的把数据导出到磁盘上。这种情况下,当Redis挂掉的时候,最新的数据就丢了。
# 如果不希望丢掉任何一条数据的话就该用纯累加模式:一旦开启这个模式,Redis会把每次写入的数据在接收后都写入 appendonly.aof 文件。
# 每次启动时Redis都会把这个文件的数据读入内存里。
# 注意,异步导出的数据库文件和纯累加文件可以并存(你得把上面所有"save"设置都注释掉,关掉导出机制)。
appendonly yes

# 纯累加文件名字
appendfilename "appendonly.aof"

# fsync() 请求操作系统马上把数据写到磁盘上,不要再等了
# Redis支持三种不同的模式:
# no:不要立刻刷,只有在操作系统需要刷的时候再刷。比较快。
# always:每次写操作都立刻写入到aof文件。慢,但是最安全。
# everysec:每秒写一次。折衷方案。

# appendfsync always
appendfsync everysec
# appendfsync no

no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

aof-load-truncated yes

aof-use-rdb-preamble yes

lua-time-limit 5000

# cluster-enabled yes
# cluster-config-file nodes-6379.conf
# cluster-node-timeout 15000
# cluster-replica-validity-factor 10
# cluster-migration-barrier 1
# cluster-require-full-coverage yes
# cluster-replica-no-failover no
# cluster-allow-reads-when-down no
# * cluster-announce-ip
# * cluster-announce-port
# * cluster-announce-bus-port
# cluster-announce-ip 10.1.1.5
# cluster-announce-port 6379
# cluster-announce-bus-port 6380

slowlog-log-slower-than 10000

slowlog-max-len 128

latency-monitor-threshold 0

notify-keyspace-events ""
# gopher-enabled no
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes

client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60

# client-query-buffer-limit 1gb
# proto-max-bulk-len 512mb
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
# lfu-log-factor 10
# lfu-decay-time 1

# activedefrag no
# active-defrag-ignore-bytes 100mb
# active-defrag-threshold-lower 10
# active-defrag-threshold-upper 100
# active-defrag-cycle-min 1
# active-defrag-cycle-max 25
# active-defrag-max-scan-fields 1000

jemalloc-bg-thread yes

3、启动主从进程

redis-server /data/redis/6379.conf
redis-server /data/redis/6380.conf

4、查看运行情况

ps aux | grep redis

为了节省时间,我将过程编写为shell脚本提供下载,运行时请加上参数1否则只会生成单一配置文件:
http://www.h-cp.com/down/redis.tar

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值