第05章-搭建Redis集群

  1. 5-1 Redis高速缓存介绍
  2. 5-2 Redis主从同步
  3. 5-3 配置RedisCluster集群

Redis高速缓存可以减少数据库IO的压力,在秒杀商品、抢红包等业务中频繁用到。这一章我们要学习的是为renren-fast项目搭建6节点的RedisCluster集群。

5-1 Redis高速缓存介绍

高速缓存介绍:

  • 高速缓存利用内存保存数据,读写速度远远超硬盘
  • 高速缓存可以减少I/O操作,降低I/O压力
  • 高速缓存介绍-淘宝网

Redis介绍:

  • Redis是Wmware开发的开源免费的KV型NoSQL缓存产品
  • Redis具有很好的性能,最多可以提供10万次/秒的读写
  • 目前新浪微博团队组建了世界上最大规模的Redis集群

Redis集群介绍:

  • Redis目前的集群方案分为以下几种:
    1. RedisCluster:官方推荐,没有中心节点
    2. Codis:中间件产品,存在中心节点。360公司推出。
    3. Twemproxy:中间件产品,存在中心节点。

RedisCluster:

  • 无中心节点,客户端与Redis节点直连,不需要中间代理层
  • 数据可以被分片存储
  • 管理方便,后续可自行增加或摘除节点
  • RedisCluster示意图

5-2 Redis主从同步

主从同步:

  • Redis集群中的数据库复制是通过主从同步来实现的

  • 主节点(Master)把数据分发给从节点(Slave)

  • 主从同步的好处在于高可用,Redis节点有冗余设计

    Master —复制—> Slave

Redis集群高可用:

  • Redis集群中应该包含奇数个Master,至少应该有3个MAster

  • Redis集群中每个Mater都应该有Slave

    Redis集群中Master与Slave节点的关系

Redis集群为何不配置负载均衡?

  • 后台程序使用了Spring架构,而Spring自动实现了负载均衡

5-3 配置RedisCluster集群

安装Redis镜像

  • 导入本地Redis镜像文件,运行Redis容器

    docker pull yyyyttttwwww/redis
    docker run -it -d --name redis_name1 -p 5001:6379 --net=network_name1 --ip 172.19.0.2 redis bash

解除Docker集群

docker swarm leave -f

查看Docker内部网络

docker network ls

删除Docker网络

docker network rm docker_network_name

创建Docker网络

docker network create -subnet=172.19.0.0/16 net2

进入Redis的Docker容器

docker exec -it redis_name1 bash

配置Redis节点:

/usr/redis/redis.conf

daemonize yes                    # 以后台进程运行
cluster-enabled yes                # 开启集群
cluster-config-file nodes.conf    # 集群配置文件
cluster-node-timeout 15000        # 超时时间
appendonly yes                    # 开启AOF模式

启动Redis:

cd /usr/redis/src
./redis-server ../redis.conf

安装redis-trib.rb

  • redis-trib是基于Ruby的Redis集群命令行工具

    cp /usr/redis/src/redis-trib.rb /usr/redis/cluster
    cd /usr/redis/cluster
    apt-get install ruby
    apt-get install rubygems
    gem install redis

创建Redis集群

  • 利用redis-trib.rb创建Redis集群

    ./redis-trib.rb create --replicas 1 172.19.0.2:6379 172.19.0.3:6379 172.19.0.4:6379 172.19.0.5:6379 172.19.0.6:6379 172.19.0.7:6379

    注:

    • --replicas 1:参数表示为每个主节点创建一个从节点

暂停Docker容器

docker pause container_name

恢复Docker容器

docker unpause container_name

查看Redis集群节点的运行状况

cluster nodes

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 tuyrk@qq.com

文章标题:第05章-搭建Redis集群

文章字数:742

本文作者:神秘的小岛岛

发布时间:2019-12-09, 20:30:57

最后更新:2019-12-09, 20:51:51

原始链接:https://www.tuyrk.cn/imooc/219-docker/05-redis-cluster/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏