• redis集群创建


    1redis集群部署

    1.1、redis安装环境和版本

    用三台虚拟机模拟6个节点,一台机器3个节点,创建出3 master、3 salve 环境

    注意:master对应的slave不要在一台服务器上

     

    1.2、安装过程

    1. 解压

    cd /data/app/app/setup

    tar -xzvf redis-xxx.tar.gz -C  /data/app/app

    2. 编译安装

    cd /data/app/app/redis-xxx 

    //yum update

    yum –y install gcc gcc-c++ autoconf automake

    make && make install    //编译需要安装gcc

    离线安装gcc

    上传gcc.zip/data/app/app/setup

    unzip gcc.zip

    cd gcc

    rpm -Uvh *.rpm --nodeps --force (这是当前文件夹中所有的rpm包强制,忽略依赖去安装)安装完 g++ -v   gcc –v查看

    cd /data/app/app/redis-xxx

    make && make install    //编译需要安装gcc

    3. redis-trib.rb 复制到 /usr/local/bin 目录下

    cd /data/app/app/redis-3.2.9/src

    cp redis-trib.rb /usr/local/bin/

    1.3、创建 Redis 节点

    首先在 /data/app/app/redis-xxx目录下创建 redis_cluster 目录;

    cd  /data/app/app/redis-xxx

    mkdir redis_cluster

    cd redis_cluster

    mkdir 7000 7001// redis_cluster 目录下,创建名为70007001的目录

    /data/app/app/redis-xxx/redis.conf 拷贝到这三个目录中

    cp  /data/app/app/redis-xxx/redis.conf  /data/app/app/redis-xxx/redis_cluster/7000

    cp  /data/app/app/redis-xxx/redis.conf  /data/app/app/redis-xxx/redis_cluster/7001

    分别修改这个配置文件redis.conf: 

    port  7000                   //每个配置文件都需要修改对应的端口

    bind 10.20.12.xx          //需要改为其他节点机器可访问的ip10.20.12.xx,10.20.44.xx 

    daemonize    yes                     //redis后台运行

    pidfile  /var/run/redis_7000.pid     //pidfile文件对应端口

    cluster-enabled  yes                 //必须开启集群,把注释#去掉

    cluster-config-file  nodes_7000.conf   //集群的配置,对应端口

    cluster-node-timeout  15000          //请求超时,默认15秒,可自行设置

    logfile "/home/app/setup/redis-xxx/redis_cluster/7000/7000.log"   启动日志启动有问题加

    appendonly  no    //aof日志开启,有需要就开启,它会每次写操作都记录一条日志

    save “”

    接着在另外台机器上(10.20.12.xx,10.20.44.xx),重复以上步骤,把目录改为7000,7001,对应的配置文件也按照这个规则修改即可。

    1.4、启动各个节点

    #第一台机器上执行

    redis-server /data/app/app/redis-xxx/redis_cluster/7000/redis.conf

    redis-server /data/app/app/redis-xxx/redis_cluster/7001/redis.conf

    #另外两台机器上执行

    redis-server /data/app/app/redis-xxx/redis_cluster/7000/redis.conf

    redis-server /data/app/app/redis-xxx/redis_cluster/7001/redis.conf

     

    1.5、检查redis启动情况

    ps -ef | grep redis

    netstat -tnlp | grep redis

    1.6、创建集群

    Redis 官方提供了 redis-trib.rb 工具,就在/data/app/app/redis-xxx/src目录中,步骤3已将它复制到 /usr/local/bin 目录中,可以直接在命令行中使用。使用下面这个命令即可完成安装。

    在线安装:  yum install ruby ruby-devel rubygems rpm-build

    离线安装

    1、安装ruby

    2tar -zxvf ruby-2.4.1.tar.gz

    cd ruby-2.4.1 

    3./configure --prefix=/usr/local/ruby

    4make && make install

    5、配置环境

    vi /etc/profile

    export PATH=/sbin:/usr/local/ruby/bin:$PATH

    source /etc/profile

    6、安装zlib

    7tar -xvzf zlib-1.2.8.tar.gz

    8cd zlib-1.2.8 

    9./configure

    12make && make install

    13cd /data/app/app/ruby-2.4.3/ext/zlib/

    14/usr/local/ruby/bin/ruby extconf.rb

    15make && make install

    16、如果出现错误: make: *** No rule to make target `/include/ruby.h', needed by `zlib.o'. Stop.

    17vim ext/zlib/Makefile

     修改zlib.o: $(top_srcdir)../../include/ruby.h

    18上传rubygems-2.6.12.tgz /data/app/app/setup

    19cd /data/app/app/setup

    20tar xf rubygems-2.6.12.tgz

    21cd rubygems-2.6.12

    22ruby setup.rb   //安装rubygems   /usr/local/ruby/bin/ruby如果角色权限不够,root

    至此ruby rubygems离线安装成功

    如果离线安装失败,可以使用下面的方法重新安装:

    6.2 上传redis-3.3.3.gem /data/app/app/setup

    gem install -l /data/app/app/setup /redis-3.3.3.gem

    6.3运行 redis-trib.rb   https://www.cnblogs.com/ivictor/p/9768010.html

    https://blog.csdn.net/phantom_111/article/details/80328049 工具相关命令

    建立三个master

    redis-trib.rb create --replicas 1 192.168.1.12:7000 192.168.1.32:7000 192.168.1.6:7000 192.168.1.32:7001 192.168.1.6:7001 192.168.1.12:7001  建议用这个直接创建主从节点


    redis-trib.rb create --replicas 0 10.20.12.138:7000 10.20.12.68:7000 10.20.44.65:7000

    出现错误应该就是rubygems就是安装失败
     
    执行命令后,会有每个master对应的标识和ip对应
    M: 39cffd5a592c4f602a4fae0a5b1a807e8d4fbe7d 10.20.12.xx1:7000
       slots:10923-16383 (5461 slots) master
    M: 1a79938ad0c4b4e35ba756ea29e09cbb97e7bd87 10.20.12.xx2:7000
       slots:5461-10922 (5462 slots) master
    M: 777cb1ad6a1057b8212d40b7186e562575b6a216 10.20.44.xx3:7000
     
    #给每一个master单独指定slave (原则:masterbackup不在同一台服务器上)

    #master 10.20.12.xx1:7000 指定 salve 10.20.12.xx2:7001

    redis-trib.rb add-node --slave --master-id 39cffd5a592c4f602a4fae0a5b1a807e8d4fbe7d 10.20.12.xx2:7001 10.20.12.xx1:7000


     #master 10.20.12.xx2:7000 指定 salve 10.20.44.xx3:7001

    redis-trib.rb add-node --slave --master-id 1a79938ad0c4b4e35ba756ea29e09cbb97e7bd87 10.20.44.xx3:7001 10.20.12.xx2:7000


    #master  10.20.44.xx3:7000 指定 salve 10.20.12.xx1:7001

    redis-trib.rb add-node --slave --master-id 777cb1ad6a1057b8212d40b7186e562575b6a216 10.20.12.xx1:7001 10.20.44.xx3:7000

    1.7、集群验证 

    //在第一台机器上连接集群的7000端口的节点 get hello

    redis-cli -h 10.20.12.xxx -c -p 7000 

    //在另一台机器上连接7001节点,执行命令set hello world  其中hellokey, worldvalue

    redis-cli -h 10.20.12.xxx-c -p 7001

    能到到数据ok  redisredis集群部署完成

  • 相关阅读:
    Docker 私有仓库搭建
    事务提交与不同数据库的自增方式
    多环境切换&&注解方式&&增删改返回值问题
    查询缓存&&逆向工程
    Mybatis整合Log4j、延迟加载
    关联查询
    MyBatis实现动态SQL
    输出参数resultType
    MyBatis调用存储过程执行CRUD
    两种取值符号的异同
  • 原文地址:https://www.cnblogs.com/timor19/p/13822055.html
Copyright © 2020-2023  润新知