redis集群的搭建注意事项

redis集群的搭建注意事项

需要配置的项可参考如下列表:

#指定 redis 只接收来自于该 IP 地址的请求,如果不进行设置,那么将处理所有请求
bind 192.16.1.174

#是否开启保护模式,默认开启。
protected-mode yes

#redis监听的端口号。
port 7000

#此参数确定了TCP连接中已完成队列
tcp-backlog 511

# 此参数为设置客户端空闲超过timeout,服务端会断开连接,为0则服务端不会主动断开连接,不能小于0。
timeout 0

#指定TCP连接是否为长连接,"侦探"信号有server端维护。默认为0.表示禁用
tcp-keepalive 300

# 默认redis不是以后台进程的方式启动,如果需要在后台运行,需要将这个值设置成yes
daemonize yes

可以通过upstart和systemd管理Redis守护进程
supervised no

# redis启动的进程路径
pidfile /var/run/redis_7000.pid


# 日志级别,log 等级分为4 级,debug,verbose,notice, 和warning。生产环境下一般开启notice
loglevel notice

# 日志文件地址
logfile /var/log/redis/redis_7000.log

# 设置数据库的个数,可以使用SELECT 命令来切换数据库。默认使用的数据库是0号库。默认16个库
databases 16

# 持久化数据存储目录
dir /usr/local/cluster/7000

#当主master服务器挂机或主从复制在进行时,是否依然可以允许客户访问可能过期的数据。
在"yes"情况下,slave继续向客户端提供只读服务,有可能此时的数据已经过期;在"no"情况下,
任何向此server发送的数据请求服务(包括客户端和此server的slave)都将被告知"error"
slave-serve-stale-data yes

# 如果是slave库,只允许只读,不允许修改
slave-read-only yes

是否使用socket方式复制数据
repl-diskless-sync no

diskless复制的延迟时间,防止设置为0。一旦复制开始,节点不会再接收新slave的复制请求直到下一个rdb传输。
所以最好等待一段时间,等更多的slave连上来
repl-diskless-sync-delay 5



是否禁止复制tcp链接的tcp nodelay[gs1] [gs2] 参数
repl-disable-tcp-nodelay no

当master不可用,Sentinel会根据slave的优先级选举一个master。最低的优先级的slave,当选master。
而配置成0,永远不会被选举。
slave-priority 100


默认redis使用的是rdb方式持久化
appendonly no

sof文件名
appendfilename "appendonly_7000.aof"

#aof持久化策略的配置
appendfsync everysec
# appendfsync no


在aof重写或者写入rdb文件的时候,会执行大量IO,
此时对于everysec和always的aof模式来说,执行fsync会造成阻塞过长时间,
no-appendfsync-on-rewrite字段设置为默认设置为no。
no-appendfsync-on-rewrite no


aof自动重写配置。
auto-aof-rewrite-percentage 100
 #设置允许重写的最小aof文件大小
auto-aof-rewrite-min-size 64mb

#aof文件可能在尾部是不完整的,当redis启动的时候,aof文件的数据被载入内存。
aof-load-truncated yes

# 启用或停用集群
  cluster-enabled yes

配置redis做为一个集群节点来启动 。
  cluster-config-file ./nodes-7000.conf

设置集群节点超时时间
 cluster-node-timeout 3000




“慢操作日志”记录
slowlog-log-slower-than 10000

慢操作日志”保留的最大条数,
slowlog-max-len 128

延迟监控,用于记录等于或超过了指定时间的操作,默认是关闭状态,即值为0。
latency-monitor-threshold 0


notify-keyspace-events ""

hash-max-ziplist-entries 512
hash-max-ziplist-value 64


list-max-ziplist-size -2


list-compress-depth 0

#intset中允许保存的最大条目个数,如果达到阀值,intset将会被重构为hashtable
set-max-intset-entries 512

#zset为有序集合,有2中编码类型:ziplist,skiplist。
因为"排序"将会消耗额外的性能,当zset中数据较多时,将会被重构为skiplist。
zset-max-ziplist-entries 128
zset-max-ziplist-value 64


hll-sparse-max-bytes 3000

#是否开启顶层数据结构的rehash功能,如果内存允许,请开启。rehash能够很大程度上提高K-V存取的效率
activerehashing yes

#buffer控制类型包括:normal -> 普通连接;slave->与slave之间的连接;pubsub ->pub/sub类型连接,
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60

#Redis server执行后台任务的频率,默认为10
hz 10
#当一个child在重写AOF文件的时候,如果aof-rewrite-incremental-fsync值为yes生效,
那么这个文件会以每次32M数据的来被同步,这大量新增提交到磁盘是有用的,并且能避免高峰延迟。
aof-rewrite-incremental-fsync yes



  • 配置集群redis.conf文件时不要开启数据的持久化,以下项需要注释掉

 设置 Redis 进行数据库镜像的频率: 
 900 秒后如果至少有 1 个 key 的值变化,则保存 
 300 秒后如果至少有 10 个 key 的值变化,则保存 
 60 秒后如果至少有 10000 个 key 的值变化,则保存
 #save 900 1
 #save 300 10
 #save 60 10000
 
 当持久化出现错误之后,是否继续提供写服务.
 #stop-writes-on-bgsave-error yes
 
数据持久化的时候,是否压缩。
 #rdbcompression yes
 
读取和写入的时候是否支持CRC64校验,默认是开启的.
 #rdbchecksum yes
 
 镜像备份文件的文件名。
 #dbfilename dump_7002.rdb
 

redis 集群的重启和节点的创建

  • 杀掉集群所有的进程命令:
   pkill  -9  redis  
  • 重启redis集群
    进入到redis.conf文件目录中执行命令:
    找到redis-server文件路径 加上redis.conf文件路径
/usr/local/redis-cluster/bin/redis-server /usr/local/redis-cluster/9001/redis.conf
  • 创建redis集群节点
    找到redis-trib.rb正确路径,执行如下参考命令:
/usr/local/redis-3.2.10/src/redis-trib.rb create --replicas 1 192.16.1.173:7000 192.16.1.173:7001 192.16.1.173:7002 192.16.1.174:7000 192.16.1.174:7001 192.16.1.174:7002

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值