• redis安装集群的2种方式


    redis主从只是数据的备份,当主宕机后不会自动切换从为主,需要手动切换从为主。

    哨兵就可以自动切换从为主,

    当主数据库遇到异常中断服务后,开发者可以通过手动的方式选择一个从数据库来升格为主数据库,以使得系统能够继续提供服务。然而整个过程相对麻烦且需要人工介入,难以实现自动化。 为此,Redis 2.8中提供了哨兵工具来实现自动化的系统监控和故障恢复功能。
    哨兵的作用就是监控redis主、从数据库是否正常运行,主出现故障自动将从数据库转换为主数据库。
    
    顾名思义,哨兵的作用就是监控Redis系统的运行状况。它的功能包括以下两个。
    
        (1)监控主数据库和从数据库是否正常运行。 
        (2)主数据库出现故障时自动将从数据库转换为主数据库。

    集群

    即使使用哨兵,redis每个实例也是全量存储,每个redis存储的内容都是完整的数据,浪费内存且有木桶效应。为了最大化利用内存,可以采用集群,就是分布式存储。即每台redis存储不同的内容,
    共有16384个slot。每个redis分得一些slot,hash_slot = crc16(key) mod 16384 找到对应slot,键是可用键,如果有{}则取{}内的作为可用键,否则整个键是可用键
    集群至少需要3主3从,且每个实例使用不同的配置文件,主从不用配置,集群会自己选。
    
    修改每个实例的配置文件:
    
        cluster-enabled yes  --开启集群
    
        cluster-config-file nodes-6382.conf --集群配置文件名,每个实例配置的要不同,redis会根据文件名自动新建
    用集群工具创建集群:
    
    我们可以用集群工具进行集群,该工具是redis源码包中,用ruby编写,所以需要先安装ruby。
    
    1、安装rubygems
    
        yum install ruby 
        yum install rubygems  
        gem install redis
    
     
    
    2、把6个redis实例都起来,每个实例的集群都打开。
    
    3、redis安装目录的src执行./redis-trib.rb create --replicas 1 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385
    
    提示信息如下
    输入yes,这样集群就建立了。
    
    登录任一台redis,执行 info cluster,提示cluster_enabled:1
    
    集群过程:
    
    首先redis-trib.rb会以客户端的形式尝试连接所有的节点,并发送PING命令以确定节点能够正常服务。如果有任何节点无法连接,则创建失败。同时发送 INFO 命令获取每个节点的运行ID以及是否开启了集群功能(即cluster_enabled为1)。 准备就绪后集群会向每个节点发送 CLUSTER MEET命令,格式为 CLUSTER MEET ip port,这个命令用来告诉当前节点指定ip和port上在运行的节点也是集群的一部分,从而使得6个节点最终可以归入一个集群。
    
    然后redis-trib.rb会分配主从数据库节点,分配的原则是尽量保证每个主数据库运行在不同的IP地址上,同时每个从数据库和主数据库均不运行在同一IP地址上,以保证系统的容灾能力
    
    3主3从,当1个主故障,大家会给对应的从投票,把从立为主,若没有从数据库可以恢复则redis集群就down了。
    
    客户端连接:
    
    使用redis-cli -c -p 任意一个端口
  • 相关阅读:
    WebAssembly学习(四):AssemblyScript
    Ramda
    React—生命周期
    网络拓扑图
    手机端的meta信息
    面试题
    Bootstrap路径导航
    Bootstrap 分页翻页
    Bootstrap栅格系统
    Bootstrap 屏幕类型
  • 原文地址:https://www.cnblogs.com/yaowen/p/9679898.html
Copyright © 2020-2023  润新知