多语言展示
当前在线:921今日阅读:27今日分享:41

如何在ubuntu上,搭建Reids高可用集群环境

Redis集群的概念:RedisCluster是redis的分布式解决方案,在3.0版本后推出的方案,有效地解决了Redis分布式的需求,当一个服务挂了可以快速的切换到另外一个服务,当遇到单机内存、并发等瓶颈时,可使用此方案来解决这些问题
工具/原料
1

System:Ubuntu

2

Redis-4.0.8

方法/步骤
1

准备工作:1.安装C语言的编译环境命令:sudo apt-get install gcc

2

2.下载Redis解压安装命令:tar -zxvf redis-4.0.8.tar.gz

3

3.命令:cd redis-4.0.8命令:make

4

4.命令:make install,可能会报下面的错,需要sudo 提高权限

5

5.安装ruby环境命令:sudo apt-get insyall ruby命令:gem install redis

6

6.在redis-4.0.8下创建redis-cluster再创建六个目录

7

7.将redis.conf 复制到前面创建的六个目录中

8

8.进入目录的redis.conf文件做修改,vim 基础操作https://www.cnblogs.com/SmartNing/p/6539095.html最少选项的集群配置文件参数:port 7000   //端口号cluster-enabled yes  // 开启集群模式cluster-config-file nodes.conf //保存节点配置文件的路径cluster-node-timeout 5000 //redis超时时间appendonly yes

9

9.修改完启动server启动完,可以输入命令:ps -ef |grep redis-server 查询是否启动成功

10

10.接下来创建集群使用Redis集群工具命令: ./redis-trib.rb create --replicas 1 192.168.147.128:7001 ...给定 redis-trib.rb 程序命令是create,表示希望创建一个新的集群。选项 --replicas 1 表示希望为集群中的每个主节点创建一个从节点,创建三主三从集群构建完成,表示集群中的16384个槽都有至少一个主节点在处理(图3)。

11

11.测试Redis集群,使用Redis-cli

12

12.redis-cli 对集群的支持是非常基本的, 所以它总是依靠 Redis 集群节点来将它转向(redirect)至正确的节点。一个真正的(serious)集群客户端应该做得比这更好: 它应该用缓存记录起哈希槽与节点地址之间的映射(map), 从而直接将命令发送到正确的节点上面。这种映射只会在集群的配置出现某些修改时变化, 比如说, 在一次故障转移(failover)之后, 或者系统管理员通过添加节点或移除节点来修改了集群的布局(layout)之后, 诸如此类。如果需要新增节点:以下是启动端口号为 7006 的新节点的详细步骤:在终端里创建一个新的标签页。进入 redis-cluster 文件夹。创建并进入 7007 文件夹。将 redis.conf 文件复制到 7007文件夹里面,然后将配置中的端口号选项改为 7007 。使用命令 ../../redis-server redis.conf 启动节点。接下来, 执行以下命令, 将这个新节点添加到集群里面:add-node命令: ./redis-trib.rb add-node 192.168.147.128:7007 192.168.147.128:7001 将一个新节点转变为某个主节点的复制品(也即是从节点)的方法。命令:cluster replicate 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e对集群进行重新分片命令:./redis-trib.rb reshard 192.168.147.128:7001

13

我们将打算移动的槽数量设置为 1000 个, 如果 example.rb 程序一直运行着的话, 现在 1000 个槽里面应该有不少键了。除了移动的哈希槽数量之外, redis-trib 还需要知道重新分片的目标(target node), 也即是, 负责接收这 1000 个哈希槽的节点。指定目标需要使用节点的 ID , 而不是 IP 地址和端口。 比如说, 我们打算使用集群的第一个主节点来作为目标, 它的 IP 地址和端口是 192.168.147.128:7000 , 而节点 ID 则是f70d9c07132fd6b55e29d55d4f9fe824dacbc0a4, 那么我们应该向 redis-trib 提供节点的 ID :

14

接着, redis-trib 会向你询问重新分片的源节点(source node), 也即是, 要从哪个节点中取出 1000 个哈希槽, 并将这些槽移动到目标节点上面。如果我们不打算从特定的节点上取出指定数量的哈希槽, 那么可以向 redis-trib 输入 all , 这样的话, 集群中的所有主节点都会成为源节点, redis-trib 将从各个源节点中各取出一部分哈希槽, 凑够 1000 个, 然后移动到目标节点上面:

15

输入 all 并按下回车之后, redis-trib 将打印出哈希槽的移动计划, 如果你觉得没问题的话, 就可以输入 yes 并再次按下回车:

注意事项

分片过程中,example.rb 可以继续正常运行。

推荐信息