简单创建redis集群

    xiaoxiao2021-03-25  145

    1、注意事项 2、配置文件并启动6个redis实例 3、使用 redis-trib.rb 将节点加入集群 一、注意事项 redis3.0 以上版本官方才支持集群 集群至少需要 3 个节点,本例中是 3 主 3 从 需要安装ruby和ruby下的redis扩展 二、配置文件并启动6个redis实例 1、本例中使用满足集群搭建的最简单配置,需要配置的内容如下 port 7000 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes daemonize yes masterauth passwd requirepass passwd 2、在 /etc/ 下创建文件夹 redis-cluster, 然后在redis-cluster 下创建六个文件夹分别为 7000 7001 7002 7003 7004 7005 在文件夹 7000 至 7005 中, 各创建一个  redis.conf 文件, 文件的内容可以使用上面的示例配置文件, 但记得将配置中的端口号从7000 改为与文件夹名字相同的号码。nodes.conf不能相同(这一项可以不做设置,节点会自动根据节点ID创建) 3、最后分别启动redis节点 redis-server /etc/redis-cluster/7000/redis.conf           (启动7000节点) 查看6个节点已经成功启动 三、使用 redis-trib.rb 将节点加入集群 通过使用 Redis 集群命令行工具 redis-trib , 编写节点配置文件的工作可以非常容易地完成: redis-trib 位于 Redis 源码的 src 文件夹中, 它是一个 Ruby 程序, 这个程序通过向实例发送特殊命令来完成创建新集群, 检查集群, 或者对集群进行重新分片(reshared)等工作。 1、redis-trib.rb 是一个ruby脚本,需要 ruby 环境 yum -y install ruby 2、redis-trib.rb 需要连接redis数据库,所以需要安装 ruby的redis扩展,使用gem进行安装, Gem是一个管理Ruby库和程序的标准包 gem insatll redis 3、redis 如果对所有人开放是一件非常危险且不明智的行为,在本例中我设置了需要认证才可以访问,而redis-trib.rb 命令似乎不支持密码(目前没发现),所以只能改ruby中的redis扩展包了 gem environment(查看gem的环境,为了找到ruby的redis扩展安装路径) 我机器上是这个目录 /usr/local/share/gems/gems/redis-3.3.3/lib/redis 打开client.rb 找到如下内容改成自己设置的密码就好 4、现在 redis-trib.rb 脚本就可以正常使用了执行如下命令创建集群 ./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 命令的意义如下: 给定 redis-trib.rb 程序的命令是 create , 这表示我们希望创建一个新的集群。 选项 --replicas 1 表示我们希望为集群中的每个主节点创建一个从节点。 之后跟着的其他参数则是实例的地址列表, 我们希望程序使用这些地址所指示的实例来创建新集群。 接着, redis-trib 会打印出一份预想中的配置给你看, 如果你觉得没问题的话, 就可以输入 yes , redis-trib 就会将这份配置应用到集群当中 最后输出如下信息,表示集群创建成功  >>>Checkforopen slots... >>>Check slots coverage... [OK] All 16384 slots covered. 参考了: http://redisdoc.com/topic/cluster-tutorial.html#id5 http://blog.csdn.net/jtbrian/article/details/53691540 http://blog.csdn.net/moxiaomomo/article/details/17540813 http://blog.csdn.net/huwei2003/article/details/50973967
    转载请注明原文地址: https://ju.6miu.com/read-3146.html

    最新回复(0)