乐趣区

Linux安装-redisCluster不需要rubby

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

  1. 下载安装 redis
    下载 redis 安装包,地址 https://redis.io/,最新的是 5.0.5,在 Linux 环境下建一个文件夹,把下载的压缩包放在该文件夹

    进入这个文件夹,输入命令 tar -zxvf redis-5.0.5.tar.gz,解压缩以后会有 redis-5.0.5 文件夹

    cd redis-5.0.5 进入压缩后的文件夹,输入 make 编译,编译成功后进入 src 文件夹,执行 make install 安装 redis
    会有一堆 Install 的提示,至此,redis 就安装成功了。

  2. 集群的搭建
    在 redis-5.0.5 文件夹的同级目录建立 redis-cluster 文件夹,并在该文件夹下建立 6 个子文件夹(集群模式最低要求三主三从)

    依次修改每个文件夹下的 redis.conf 配置文件,与文件夹名保持一致,免得乱套

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

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

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

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

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

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

  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


    当然选 yes

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

  5. 验证一下
    进入 redis6001 文件夹,输入命令
    redis-cli -h 10.57.17.87 -p 6001 –c 连上该节点,通过 cluster info 和 cluster nodes 可查看该集群相关信息

    疯狂地进行一下 get, set 操作,验证 ok, 根据 crc16 算法算一些 key 也会指向集群中的其他机器

    至此,一个简单的 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。

退出移动版