• redis3.0自带集群配置


    参考

    http://redis.readthedocs.org/en/latest/topic/cluster-tutorial.html

    http://yindashan.github.io/blog/2014/11/02/redisclusterda-jian-jiao-cheng/

    主从切换需要使用sentinel

    http://blog.mkfree.com/posts/5257683d479e1dd72e7c1b4e

    一些说明

    集群使用的是gossip协议,是最终一致,并非强一致
    数据根据不同的slot分到不同的实例,这个测试的时候需要用用redis-cli上添加-c参数
    主从使用sentinel实现自动切换,不需要在配置里面里面强行约束master和slave,应该是动态使用命令验证掉了

    以下是我配置的例子

    编译redis,重新组织下目录,具体自己搞搞
    复制到7000,7001,7002,7003,7004,7005

    修改每个实例的配置文件

    port 7000
    cluster-enabled yes
    cluster-config-file nodes.conf
    cluster-node-timeout 5000
    appendonly yes

    自己写个run-cluster.sh

    cd ./7000;
    ./bin/redis-server ./conf/redis.conf;
    cd ../;
    
    cd ./7001;
    ./bin/redis-server ./conf/redis.conf;
    cd ../;
    
    cd ./7002;
    ./bin/redis-server ./conf/redis.conf;
    cd ../;
    
    cd ./7003;
    ./bin/redis-server ./conf/redis.conf;
    cd ../;
    
    cd ./7004;
    ./bin/redis-server ./conf/redis.conf;
    cd ../;
    
    cd ./7005;
    ./bin/redis-server ./conf/redis.conf;
    cd ../;
    
    ./redis/bin/redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005;

    自己写个sentinel.conf,用于监控redis实例

    port 26379
     
    sentinel monitor master1 127.0.0.1 7000 1
    sentinel down-after-milliseconds master1 5000
    sentinel failover-timeout master1 15000
    sentinel parallel-syncs master1 2
    
    sentinel monitor master2 127.0.0.1 7001 1
    sentinel down-after-milliseconds master2 5000
    sentinel failover-timeout master2 15000
    sentinel parallel-syncs master2 2
     
    sentinel monitor master3 127.0.0.1 7002 1
    sentinel down-after-milliseconds master3 5000
    sentinel failover-timeout master3 15000
    sentinel parallel-syncs master3 2

    第1行,指定sentinel使用的端口,不能与redis-server运行实例的端口冲突

    第3行,显示监控master节点127.0.0.1,master节点使用端口7000,最后一个数字表示投票需要的"最少法定人数",比如有10个sentinal哨兵都在监控某一个master节点,如果需要至少6个哨兵发现master挂掉后,才认为master真正down掉,那么这里就配置为6,最小配置1台master,1台slave,在二个机器上都启动sentinal的情况下,哨兵数只有2个,如果一台机器物理挂掉,只剩一个sentinal能发现该问题,所以这里配置成1,至于master1只是一个名字,可以随便起,但要保证3-6行都使用同一个名字
    第4行,表示如果5s内master1没响应,就认为挂了
    第5行,表示如果15秒后,master1仍没活过来,则启动failover,从剩下的slave中选一个升级为master
    第6行,表示如果master重新选出来后,其它slave节点能同时并行从新master同步缓存的台数有多少个,显然该值越大,所有slave节点完成同步切换的整体速度越快,但如果此时正好有人在访问这些slave,可能造成读取失败,影响面会更广。最保定的设置为1,只同一时间,只能有一台干这件事,这样其它slave还能继续服务,但是所有slave全部完成缓存更新同步的进程将变慢。

    sentinel.sh

    ./redis/bin/redis-sentinel ./sentinel.conf

    测试连接客户端

    ./redis/bin/redis-cli -c -p 7005

    注意,-c参数必须有

  • 相关阅读:
    Floyd_Warshall算法
    Bellman_Ford算法
    深度优先搜索
    广度优先搜索
    贪心算法_活动选择
    动态规划_0-1背包问题
    算法导论_动态规划_最长回文子序列
    算法导论_动态规划_最长公共子序列
    动态规划解决分割问题
    2016 Google中国开发者大会游记
  • 原文地址:https://www.cnblogs.com/ziyouchutuwenwu/p/4696462.html
Copyright © 2020-2023  润新知