Linux安装 redisCluster,不需要rubby

2019-09-01 03:55:47 1082 思小齐 思小齐

最近客户要求缓存必须要用redis,秉承客户第一的理念,部署一套redis cluster模式。cluster相比哨兵,自身的一致性哈希算法带来更好的水平扩展性。公司开发环境只给一台linux机器,集群模式最低要求三主三从,只能开6个端口来模拟了,现在新的redis cluster安装已经不需要ruby了,真的很方便了。话不多说,贴上部署的全过程:

  1. 下载安装redis
    下载redis安装包,地址https://redis.io/,最新的是5.0.5,在Linux环境下建一个文件夹,把下载的压缩包放在该文件夹
    clipboard.png
    进入这个文件夹,输入命令tar -zxvf redis-5.0.5.tar.gz,解压缩以后会有redis-5.0.5文件夹
    clipboard.png
    cd redis-5.0.5 进入压缩后的文件夹,输入make编译,编译成功后进入src文件夹,执行make install安装redis
    会有一堆Install的提示,至此,redis就安装成功了。
  2. 集群的搭建
    在redis-5.0.5文件夹的同级目录建立redis-cluster文件夹,并在该文件夹下建立6个子文件夹(集群模式最低要求三主三从)
    clipboard.png
    clipboard.png
    将redis-5.0.5文件下的redis.conf,redis-5.0.5/src下的redis-server和redis-cli分别拷贝到这个6个子文件夹中,每个子文件夹下各有这三个文件,依次修改每个文件夹下的redis.conf配置文件
    首先更改端口号,与文件夹名保持一致,免得乱套
    clipboard.png

    将daemonize no改为yes,代表为守护进程
    clipboard.png

    把允许集群的注释去掉,去掉"#" ,变成"cluster-enabled yes"(你用的就是让人家的集群模式,这个就是用来区分部署方式的)
    clipboard.png

    绑定本机IP bind 127.0.0.1换掉,换成redis机器的ip地址,不然别的IP访问不了你的redis服务,一定要记得换掉,这是本人踩过的坑,不然集群起不动
    clipboard.png

    其余五个文件夹一次改一下,注意端口号的变化(或者你直接修改好,再拷贝5份,改个端口快些)

  3. 启动单机
    分别进入6个文件夹,执行 redis-server redis.conf
    clipboard.png

    其余5台也启动一下 ps-ef|grep redis,总共6台
    clipboard.png

  4. 构建集群
    下一步就是将这6个转成集群,网上很多资料说redis集群都需要安装ruby环境,现在高版本的redis-cli已经不需要安装ruby来进行集群的搭建了。进入一开始安装的文件夹redis-5.0.5,输入命 src/redis-cli --cluster create 10.57.17.87:6001 10.57.17.87:6002 10.57.17.87:6003 10.57.17.87:6004 10.57.17.87:6005 10.57.17.87:6006 --cluster-replicas 1

    clipboard.png
    当然选 yes
    clipboard.png

    所有槽位都被配置和覆盖,安装完毕(有兴趣的可以了解下redis是通过槽位的分配来实现一致性哈希的)

  5. 验证一下
    进入redis6001文件夹,输入命令
    redis-cli -h 10.57.17.87 -p 6001 –c 连上该节点,通过cluster info 和 cluster nodes可查看该集群相关信息
    clipboard.png
    疯狂地进行一下get, set操作,验证ok, 根据crc16算法算一些key也会指向集群中的其他机器
    clipboard.png
    至此,一个简单的redis集群搭打好啦

附录:
1.关闭方式
正常关闭:redis-cli -h ip地址 -p 端口号 shutdown,会将内存数据持久化到本地

2.redis cluster设置密码有两种方式
方法一.在集群创建时,配置文件中添加如下两行
masterauth passwd
requirepass passwd
方法二.如果集群已经创建好,也可以动态设置密码
在集群的所有实例(包含主节点和从节点)中执行
config set masterauth passwd
config set requirepass passwd
config rewrite
方法二的效果和方法一是一样的,会在redis的配置文件中写入下面两行配置,并且配置立即生效,不需要重启redis。