redis(集群)

    科技2022-08-01  120

    现状问题

    redis提供的服务OPS可以达到10万/秒,当前业务OPS已经达到20万/秒 内存单机容量达到256G,当前业务需求内存容量1T 使用集群的方式可以解决问题

    集群

    集群就是使用网络若干台计算机联通起来,并提供统一的管理的方式。使其对外呈现单机的服务效果; 作用:分散单台服务器的压力,实现负载均衡 分散单台服务器的存储压力,实现可扩展性 降低单台服务器宕机带来的业务灾难

    集群内部通讯设计

    各个数据库相互通信,保存各个库中槽的编号数据 一次命中,直接返回 一次未命中,告知具体位置

    集群搭建

    master集群 port 6379 daemonize no #logfile “6379.log” dir /redis-4.0.0/data dbfilename dump-6379.rdb rdbcompress yes rdbchecksum yes save 10 2 appendonly yes appendfsync always appendfilename appendonly-6379.aof bind 127.0.0.1 database 16 cluster-enabled yes #集群j节点开启 cluster-config-file nodes-6379.conf 每个cluster都有自己的启动文件,在不同的目录可以不用 会自动生成记录集群连接点信息 cluster-node-timeout 100000 10s超时就下线 接下来就是实现master连接到一块 第一步:安装ruby ruby-v gem -v 第二步:找到redis trib.rb 执行命令:./redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 replicas 1 表示1个master连1个slave 数量必须为2,4,6这种 127.0.0.1:6379 127.0.0.1:6380 会自动识别 1个为master一个为slave

    存放数据

    集群客户端命令:redis-cli -c 集群客户端命令:redis-cli -c -p(6379不用) cluster nodes 从掉线再上线之后还是从 主掉线,上线变为从

    cluster配置命令

    设置加入Cluster,成为其中的节点

    cluster-enabled yes|no

    cluster配置文件名,该文件属于自动生成,,仅用于查找文件并查询文件内容

    cluster-config-file <filename>

    节点服务响应超时时间,用于判定该节点是否下线或切换为从节点

    cluster-node-timeout <millsecond>

    master连接的slave最小数量

    cluster-migration-barrier <count>

    Cluster节点操作命令

    查看集群节点信息:

    cluster nodes

    进入一个从节点redis,切换其主节点

    cluster replicate <master-id>

    发现一个新节点,新增主节点

    cluster meet ip:port

    忽略一个没有solt的节点

    cluster forget<id>

    手动故障转移

    cluster failover
    Processed: 0.011, SQL: 8