美文网首页
redis集群搭建

redis集群搭建

作者: hijiang | 来源:发表于2019-05-28 20:26 被阅读0次

安装redis;

哨兵原理介绍

Sentinel 哨兵,上其他网站很多

配置主:

redis-cli --cluster create 172.16.71.183:7001 172.16.71.183:7002 172.16.71.183:7003 --cluster-replicas 0
这里--cluster-replicas 0表示不为以上主建立从【我们自己手动添加】;

从配置

注意:从配置需要添加masterauth xxxxx 添加主的密码,否则下面的命令执行完后,任然会是失败的;
往集群添加从:
redis-cli --cluster add-node 172.16.71.183:7006 172.16.71.183:7001 --cluster-slave --cluster-master-id 18b31f22eccc86ca13bcd992776cd3987b572441 -a password

配置哨兵

哨兵的可执行文件就是redis-server,哨兵配置示例:

# Example sentinel.conf  
  
# port <sentinel-port>  
# The port that this sentinel instance will run on  
port 27000  
  
# dir <working-directory>  
# Every long running process should have a well-defined working directory.  
# For Redis Sentinel to chdir to /tmp at startup is the simplest thing  
# for the process to don't interfere with administrative tasks such as  
# unmounting filesystems.  
dir /tmp  
  
# sentinel monitor <master-name> <ip> <redis-port> <quorum>  
#  
# Tells Sentinel to monitor this master, and to consider it in O_DOWN  
# (Objectively Down) state only if at least <quorum> sentinels agree.  
#  
# Note that whatever is the ODOWN quorum, a Sentinel will require to  
# be elected by the majority of the known Sentinels in order to  
# start a failover, so no failover can be performed in minority.  
#  
# Slaves are auto-discovered, so you don't need to specify slaves in  
# any way. Sentinel itself will rewrite this configuration file adding  
# the slaves using additional configuration options.  
# Also note that the configuration file is rewritten when a  
# slave is promoted to master.  
#  
# Note: master name should not include special characters or spaces.  
# The valid charset is A-z 0-9 and the three characters ".-_".  
sentinel monitor master1 127.0.0.1 7000 1 
sentinel monitor master2 127.0.0.1 7004 1  
sentinel monitor master3 127.0.0.1 7005 1  
  
# sentinel down-after-milliseconds <master-name> <milliseconds>  
#  
# Number of milliseconds the master (or any attached slave or sentinel) should  
# be unreachable (as in, not acceptable reply to PING, continuously, for the  
# specified period) in order to consider it in S_DOWN state (Subjectively  
# Down).  
#  
# Default is 30 seconds.  
sentinel down-after-milliseconds master1 30000  
sentinel down-after-milliseconds master2 30000  
sentinel down-after-milliseconds master3 30000  
  
# sentinel parallel-syncs <master-name> <numslaves>  
#  
# How many slaves we can reconfigure to point to the new slave simultaneously  
# during the failover. Use a low number if you use the slaves to serve query  
# to avoid that all the slaves will be unreachable at about the same  
# time while performing the synchronization with the master.  
sentinel parallel-syncs master1 1  
sentinel parallel-syncs master2 1  
sentinel parallel-syncs master3 1  
  
# sentinel failover-timeout <master-name> <milliseconds>  
#  
# Specifies the failover timeout in milliseconds. It is used in many ways:  
#  
# - The time needed to re-start a failover after a previous failover was  
#   already tried against the same master by a given Sentinel, is two  
#   times the failover timeout.  
#  
# - The time needed for a slave replicating to a wrong master according  
#   to a Sentinel current configuration, to be forced to replicate  
#   with the right master, is exactly the failover timeout (counting since  
#   the moment a Sentinel detected the misconfiguration).  
#  
# - The time needed to cancel a failover that is already in progress but  
#   did not produced any configuration change (SLAVEOF NO ONE yet not  
#   acknowledged by the promoted slave).  
#  
# - The maximum time a failover in progress waits for all the slaves to be  
#   reconfigured as slaves of the new master. However even after this time  
#   the slaves will be reconfigured by the Sentinels anyway, but not with  
#   the exact parallel-syncs progression as specified.  
#  
# Default is 3 minutes.  
sentinel failover-timeout master1 180000  
sentinel failover-timeout master2 180000  
sentinel failover-timeout master3 180000  

其中master1 后面的就是主的ip和端口

好了后,执行redis-sentinel sentinel1.conf --sentinel即可;

如果存在问题,最好在conf中添加上logfile的配置,以便查看问题;

redis-cli命令后,可以看集群状态:
cluster nodes:列出集群所有节点;
info:查看本节点状态,可以看到是master还是slave,还有slave连接的个数【之前没配置masterauth,所以一直没连接上,但是也不报错】;另外注意:slave的配置文件中,不能把slaveof配置打开,但是要配masterauth,之前一直以为这个slaveof没开,所以masterauth也不用设置,真是坑!!!

相关文章

网友评论

      本文标题:redis集群搭建

      本文链接:https://www.haomeiwen.com/subject/xxujtctx.html