• 编译安装redis 4.0.9版本,并配置集群


      一、下载redis 包

    https://download.redis.io/releases/redis-4.0.9.tar.gz

      二、解压缩redis包

    tar xf redis-4.0.9.tar.gz

      三、安装gcc,zlib-devel

    yum install gcc zlib-devel -y

      四、进入解压缩的目录

    cd redis-4.0.9

      五、安装,并指定安装位置

    make PREFIX=/apps/redis install

      六、复制配置文件到redis

    cp redis.conf /apps/redis/etc/

       七、修改配置文件

    #守护进程模式运行(后台运行,默认前台运行)
    daemonize yes
    #设置密码
    masterauth 123456
    #日志文件存放位置
    logfile "/apps/redis/logs/redis.log"
    #开启集群(本次编译用来做集群,所以要取消注释这两项)
    cluster-enabled yes
    cluster-config-file nodes-6379.conf
    #修改监听端口0.0.0.0
    bind 0.0.0.0
    #设置本机密码
    requirepass 123456
    #设置主服务器密码(在集群中,这两个密码项非常重要,否则会导致主从数据不同步,并且不报错!!!)
    masterauth 123456

      八、制作软连接,方便使用

    ln -s /apps/redis/bin/redis* /usr/bin/

      九、带配置文件启动redis(默认启动使用的是默认设置这个设置改不了)

    redis-server /apps/redis/etc/redis.conf

    配置集群:

      十、将redis-trib.rb制作软链接到 /usr/bin/下 方便使用

    ln -s /apps/redis-4.0.9/src/redis-trib.rb /usr/bin/

      ## redis-trib.rb 集群管理工具,这个工具是 redis 官方推出的管理 redis 集群的工具,集成在redis 的源码 src 目录下,是基于 redis 提供的集群命令封装成简单、便捷、实用的操作工具,redis-trib.rb是 redis 作者用 ruby 完成的

      十一、下载ruby包(ruby和redis模块只需要在一台电脑安装即可)

    wget https://cache.ruby-lang.org/pub/ruby/ruby-2.5.0.tar.gz

      ##yum源里带的版本低使用不了,版本高于2.30以上即可

      十二、解压缩ruby

    tar xf ruby-2.5.0.tar.gz

      十三、进入ruby目录

    cd ruby-2.5.0

      十四、编译安装

    1 ./configure 
    2 make && make install

      十五、下载redis模块

    wget wget https://rubygems.org/downloads/redis-4.2.3.gem

      ##版本不限,和这个差不多就行

      十六、安装指定的redis模块

    gem install -l /apps/redis-4.2.3.gem

      ## 也可也直接gem install redis

    返回如下则表示安装成功:

    Successfully installed redis-4.2.3
    Parsing documentation for redis-4.2.3
    Installing ri documentation for redis-4.2.3
    Done installing documentation for redis after 0 seconds
    1 gem installed

      十七、创建集群(任意一台安装过ruby的电脑上执行即可)

    redis-trib.rb create --replicas 1 192.168.1.9:6379 192.168.1.8:6379 192.168.1.7:6379 192.168.1.6:6379 192.168.1.5:6379 192.168.1.4:6379

      ##我这里同时安装了6台电脑,直接创建集群

      十八、提示如下,输入yes生成配置文件

    redis-trib.rb create --replicas 1 192.168.1.9:6379 192.168.1.8:6379 192.168.1.7:6379 192.168.1.6:6379 192.168.1.5:6379 192.168.1.4:6379
    >>> Creating cluster
    >>> Performing hash slots allocation on 6 nodes...
    Using 3 masters:#创建了三个主节点
    192.168.1.9:6379
    192.168.1.8:6379
    192.168.1.7:6379
    Adding replica 192.168.1.6:6379 to 192.168.1.9:6379  ### 192.168.1.6是192.168.1.9的从节点
    Adding replica 192.168.1.5:6379 to 192.168.1.8:6379
    Adding replica 192.168.1.4:6379 to 192.168.1.7:6379
    M: 73a51b03d3ae1ae60573924a36e35a4160ea2a8a 192.168.1.9:6379 # M表示master 主节点,S表示slave 从节点
       slots:0-5460 (5461 slots) master
    M: bc591a36af254e510488ab184b0e638e7298ff6d 192.168.1.8:6379 ##M后的一串数字是随机生成的,在集群中,以ID号区分主机,不以IP地址区分
       slots:5461-10922 (5462 slots) master ## slots是按照顺序分的,每台上的应该是差不多的,也会有原因导致无序分配,
    M: 7226c301d028168f22f60930db0bf8b4260c2905 192.168.1.7:6379
       slots:10923-16383 (5461 slots) master
    S: 3bcd400f071643f814d45479bfc3a56612eca471 192.168.1.6:6379
       replicates 73a51b03d3ae1ae60573924a36e35a4160ea2a8a  ## 这里的ID就是master的ID
    S: 7a1ad13e2d2e3ad84a5da2d001e1680fcf8b2255 192.168.1.5:6379
       replicates bc591a36af254e510488ab184b0e638e7298ff6d  ##slave节点是没有slots的,master宕机后会自动继承
    S: d53b5724df5ae6f6f5305cebb419e6b5ec2a6096 192.168.1.4:6379
       replicates 7226c301d028168f22f60930db0bf8b4260c2905Can I set the above configuration? (type 'yes' to accept): yes
    ##配置文件中dir /var/lib/redis这里定义了放在哪,这个配置就会保存在这个位置,配置文件自动生成,不需要手动更改

    返回如下则表示成功

    [OK] All nodes agree about slots configuration.
    >>> Check for open slots...
    >>> Check slots coverage...
    [OK] All 16384 slots covered.

      每一台redis服务器,必须是master ,cluster_enabled 必须是1 ,里面必须没有任何数据,有数据的话使用创建集群是加不进去的,使用FLUSHDB 清空当前数据库里所有信息,FLUSHALL 清空redis所有库所有数据

    ------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------- 博客均为个人笔记,无所追求,仅供参考~~~ QQ--2382990774
  • 相关阅读:
    CKEditor 4 上传视频
    CKEditor 4 上传图片
    azure跨域问题(访问azure存储账户数据,blob)
    azure 上传blob到ams(CreateFromBlob)
    js 时间格式化成字符串
    js正则表达式替换HTML标签以及空格( )
    js 获取上传视频的时长、大小、后缀名
    webapi 跨域问题
    requests(二): json请求中固定键名顺序&消除键和值之间的空格
    requests(一): 发送一个json格式的post请求
  • 原文地址:https://www.cnblogs.com/alexlv/p/15070131.html
Copyright © 2020-2023  润新知