zoukankan      html  css  js  c++  java
  • redis3.0集群搭建

    参考:https://blog.csdn.net/qq_42815754/article/details/82912130

    一.redis基本配置

      1.安装并启动六个redis

        启动需要用./redis-server ../redis.conf  的方式启动才会采用配置文件

      2.修改redis.conf中的:

        daemonize  yes

          表示以后台模式启动

        cluster-enabled  yes

          表示开启集群模式

        protected-mode no

          表示关闭保护模式

        bind 0.0.0.0

          这里修改为0.0.0.0表示所有ip都可以访问这个redis

    二.集群简介

      1.redis集群是去中心化的,没有中心节点

      2.redis节点内部通信采用 PING-PONG机制,也就是在redis客户端输入PING发送给服务端,如果服务端还活着就会回复一个PONG,以此来判断节点是

          否还在正常工作.

      3.判断节点是否还可用,redis集群有一个投票容错机制,只有超半数节点认为某个节点不可用,集群才会认为这个节点不可用

      4.为保证redis集群高可用,每个redis节点都要配一个从redis,主从之间采用Goossip协议实现异步复制,redis集群不能保证数据强一致

      5.如果集群中一个节点失效了,而且没有从节点可用,那么这个集群就失效了,因为redis采用的是数据分区中的按数据范围分区的方式,其他

        常见数据分区方式还有哈希取余,按数据量,一致性哈希等。按范围分区的方式解决了在增删节点的时候缓存集体失效的问题。具体实现就是

        把16384个slot分布到各个节点上,对要存的数据的key用crc16算法计算,得出结果再对16384取余,这样来确定要存储到哪个节点上。

        

    三.开启集群

      1.开启集群可以使用官方自带的ruby脚本,因为是ruby语言,所以需要先安装ruby环境,如果直接用yum install ruby则安装的ruby版本是很低的,而

        我们这脚本是需要比较高的ruby版本所以用如下方法安装

        更换yum源来安装

        yum install centos-release-scl-rh    //安装源

        yum install rh-ruby23  -y    //直接yum安装即可  

         scl  enable  rh-ruby23 bash    //使用rh-rubu23创建一个bash会话环境

        ruby -v    //查看安装版本

      2.之后我们还需要安装一个ruby插件https://rubygems.org/gems/redis/versions/3.0.0

        根据redis版本下载,之后使用gem install redis-3.0.0.gem命令安装下载的插件

        安装完成后就可以正式启动集群了,redis自带的rubu脚本在redis的src目录下,使用如下命令开启集群,前三个是主节点,后三个是从节点,

        create --replicas 1代表从节点只有一个

    ./redis-trib.rb create --replicas 1 47.106.219.251:7001 47.106.219.251:7002 47.106.219.251:7003 47.106.219.251:7004 47.106.219.251:7005 47.106.219.251:7006

      3.最基本集群命令

        1.redis-cli -c -p 6382 -h 192.168.10.12 以集群模式连接redis

        2.cluster info 查看集群信息

        3.cluster nodes 查看集群节点

        4.cluster meet <ip> <port> 添加节点到集群中

        5.cluster forget <node_id> :从集群中移除 node_id 指定的节点,其中node_id就是hash值

  • 相关阅读:
    Java乐观锁与悲观锁介绍和CAS的实现方式以及jvm内存分配方式
    Java爬虫Ins博主所有帖子的点赞和评论导出excel
    移动端touch事件影响click事件以及在touchmove添加preventDefault导致页面无法滚动的解决方法
    Gulp的代理转发插件
    Mybatis学习笔记汇总(包括源码和jar包)
    HTTP Strict Transport Security (通常简称为HSTS)
    java项目部署Linux服务器几种启动方式总结经验
    Nginx下的location,upstream,rewrite 和 proxy_pass使用总计大全
    SQL注入和Mybatis预编译防止SQL注入
    area.json
  • 原文地址:https://www.cnblogs.com/lollong/p/11625092.html
Copyright © 2011-2022 走看看