• 第十一课——codis-server的高可用,对比codis和redis cluster的优缺点


    【作业描述】

    1.配置codis-ha

    2.总结对比codis的集群方式和redis的cluster集群的优缺点
    =================================================================================
     

    一、codis-ha的部署配置

    ##codis-ha要独立于codis集群,单独配置,也是基于go环境的
    1、go方式下载codis-ha:
    go get github.com/ngaut/codis-ha
    2、进入codis-ha目录,执行go build命令:

    3、启动codis-ha服务
    codis-ha -codis-config="10.7.12.98:18087" -log-level="info" -productName='codis' &
    -codis-config参数,值为codis集群的管理控制台端口,也就是dashboard界面访问的IP:port
    -log-level参数,值为日志级别;
    -productName参数,值为产品名,可以在codis-proxy的配置文件里找到,如下:
    或者通过dashboard管理界面查看:
    4、测试codis-server的高可用性
    (1)当前codis集群状态如下:
    (2)将redis8379进程杀掉,如下:
    codis-ha有如下日志输出:
    通过dashboard管理界面查看如下:
    ###redis8379节点重新启动后,会通过codis-ha将redis8379重新添加到集群,作为redis9379节点的从库
    ###至此,codis-server的高可用测试结束!
     
    二、codis集群和redis cluster的优劣对比
     
     
    1、codis架构如下:

    (1)Codis是一整套缓存解决方案,包含高可用、数据分片、监控、动态扩态 etc.。走的是 Apps->代理->redis cluster,一定规模后基本都采用这种方式。

    (2)Codis引入了Group的概念,每个Group包括1个Redis Master及至少1个Redis Slave,这是和Twemproxy的区别之一。这样做的好处是,如果当前Master有问题,则运维人员可通过Dashboard“自助式”切换到Slave,而不需要小心翼翼地修改程序配置文件。

    为支持数据热迁移(Auto Rebalance),出品方修改了Redis Server源码,并称之为Codis Server。

    Codis采用预先分片(Pre-Sharding)机制,事先规定好了,分成1024个slots(也就是说,最多能支持后端1024个Codis Server),这些路由信息保存在ZooKeeper中。

    (3)Codis仅负责维护当前Redis Server列表,由运维人员自己去保证主从数据的一致性。
    2、redis cluster集群架构如下:
    (1)Redis Cluster将所有Key映射到16384个Slot中,集群中每个Redis实例负责一部分,业务程序通过集成的Redis Cluster客户端进行操作。客户端可以向任一实例发出请求,如果所需数据不在该实例中,则该实例引导客户端自动去对应实例读写数据。

    Redis Cluster的成员管理(节点名称、IP、端口、状态、角色)等,都通过节点之间两两通讯,定期交换并更新。





  • 相关阅读:
    C#
    数据库SQL Server
    JavaScript题目
    vscode: Visual Studio Code 常用快捷键
    jQuery教程
    JavaScript快速排序
    JS编程艺术
    JS
    linux 笔记
    积累的各种资源
  • 原文地址:https://www.cnblogs.com/cjing2011/p/9bafc11fc32e37d2ba29a8758f4b16ff.html
Copyright © 2020-2023  润新知