• Redis系列(五)-Redis如何在保持读写分离+高可用的架构下


    1、单机redis在海量数据面前的瓶颈

    2、怎么才能够突破单机瓶颈,让redis支撑海量数据?

    3、redis的集群架构

    redis cluster

    支撑N个redis master node,每个master node都可以挂载多个slave node

    读写分离的架构,对于每个master来说,写就写到master,然后读就从mater对应的slave去读

    高可用,因为每个master都有salve节点,那么如果mater挂掉,redis cluster这套机制,就会自动将某个slave切换成master

    redis cluster(多master + 读写分离 + 高可用)

    我们只要基于redis cluster去搭建redis集群即可,不需要手工去搭建replication复制+主从架构+读写分离+哨兵集群+高可用

    4、redis cluster vs. replication + sentinal

    如果你的数据量很少,主要是承载高并发高性能的场景,比如你的缓存一般就几个G,单机足够了

    replication,一个mater,多个slave,要几个slave跟你的要求的读吞吐量有关系,然后自己搭建一个sentinal集群,去保证redis主从架构的高可用性,就可以了

    redis cluster,主要是针对海量数据+高并发+高可用的场景,海量数据,如果你的数据量很大,那么建议就用redis cluster

    5、redis cluster实操

    5.1 创建配置文件及目录

    node1:

    /etc/redis/7001.conf(存放redis的配置文件),/var/redis/7001(存放redis的持久化文件)

    /etc/redis/7002.conf(存放redis的配置文件),/var/redis/7002(存放redis的持久化文件)

    mkdir -p /etc/redis-cluster
    mkdir -p /var/log/redis
    mkdir -p /var/redis/7001
    mkdir -p /var/redis/7002

    node2:

    /etc/redis/7003.conf(存放redis的配置文件),/var/redis/7003(存放redis的持久化文件)

    /etc/redis/7004.conf(存放redis的配置文件),/var/redis/7004(存放redis的持久化文件)

    mkdir -p /etc/redis-cluster
    mkdir -p /var/log/redis
    mkdir -p /var/redis/7003
    mkdir -p /var/redis/7004

    node3:

    /etc/redis/7005.conf(存放redis的配置文件),/var/redis/7005(存放redis的持久化文件)

    /etc/redis/7006.conf(存放redis的配置文件),/var/redis/7006(存放redis的持久化文件)

    mkdir -p /etc/redis-cluster
    mkdir -p /var/log/redis
    mkdir -p /var/redis/7005
    mkdir -p /var/redis/7006

    5.2 修改配置文件

    node1-7001

    port 7001
    cluster-enabled yes
    cluster-config-file /etc/redis-cluster/node-7001.conf
    cluster-node-timeout 15000
    daemonize yes
    pidfile /var/run/redis_7001.pid
    dir /var/redis/7001
    logfile /var/log/redis/7001.log
    bind 192.168.2.221
    appendonly yes
    

    参考node1-7001修改其他节点node1-7002、node2-7003、node2-7004、node3-7005、node3-7006

    5.3 准备生产环境的启动脚本

    在/etc/init.d下,放6个启动脚本,分别为: redis_7001, redis_7002, redis_7003, redis_7004, redis_7005, redis_7006,脚本参考Redis系列(一)-CentOS7下Redis单机安装+自启动

    5.4 启动redis

    分别启动6个redis实例

    node1

    ./redis_7001 start

    ./redis_7002 start

    node2

    ./redis_7003 start

    ./redis_7004 start

    node3

    ./redis_7005 start

    ./redis_7006 start

    5.5 创建集群

    在node1(任何一台node都可以)

    ./redis-cli --cluster create 192.168.2.221:7001 192.168.2.221:7002 192.168.2.230:7003 192.168.2.230:7004 192.168.2.232:7005 192.168.2.232:7006 --cluster-replicas 1
    

     5.6 客户端连接集群

    ./redis-cli -c -h 192.168.2.221 -p 7001

     查看集群信息

    cluster info
    

    cluster nodes
    

    本篇内容是参考网络教程学习过程中的笔记
    开发工作着,生活快乐着,留下总结,相互交流,共同进步
  • 相关阅读:
    DevExpress.XtraBars.BarManager去掉分割线/分隔符
    C# ToShortDateString() ToString() 设置日期格式的区别
    DevExpress.XtraEditors.TextEdit绑定数据后,不输入内容,出现 “Invalid Value” 无效值错误
    stuff(select ',' + fieldname from tablename for xml path('')),1,1,'')
    string、Empty和null三者的区别
    js数组定义
    Clementine学习
    实现getElementsByClassName
    如何让ajax执行完后再继续往下执行?
    java中arraylist和数组的转换
  • 原文地址:https://www.cnblogs.com/lovechengyu/p/15167335.html
Copyright © 2020-2023  润新知