System:Ubuntu
Redis-4.0.8
准备工作:1.安装C语言的编译环境命令:sudo apt-get install gcc
2.下载Redis解压安装命令:tar -zxvf redis-4.0.8.tar.gz
3.命令:cd redis-4.0.8命令:make
4.命令:make install,可能会报下面的错,需要sudo 提高权限
5.安装ruby环境命令:sudo apt-get insyall ruby命令:gem install redis
6.在redis-4.0.8下创建redis-cluster再创建六个目录
7.将redis.conf 复制到前面创建的六个目录中
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.修改完启动server启动完,可以输入命令:ps -ef |grep redis-server 查询是否启动成功
10.接下来创建集群使用Redis集群工具命令: ./redis-trib.rb create --replicas 1 192.168.147.128:7001 ...给定 redis-trib.rb 程序命令是create,表示希望创建一个新的集群。选项 --replicas 1 表示希望为集群中的每个主节点创建一个从节点,创建三主三从集群构建完成,表示集群中的16384个槽都有至少一个主节点在处理(图3)。
11.测试Redis集群,使用Redis-cli
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
我们将打算移动的槽数量设置为 1000 个, 如果 example.rb 程序一直运行着的话, 现在 1000 个槽里面应该有不少键了。除了移动的哈希槽数量之外, redis-trib 还需要知道重新分片的目标(target node), 也即是, 负责接收这 1000 个哈希槽的节点。指定目标需要使用节点的 ID , 而不是 IP 地址和端口。 比如说, 我们打算使用集群的第一个主节点来作为目标, 它的 IP 地址和端口是 192.168.147.128:7000 , 而节点 ID 则是f70d9c07132fd6b55e29d55d4f9fe824dacbc0a4, 那么我们应该向 redis-trib 提供节点的 ID :
接着, redis-trib 会向你询问重新分片的源节点(source node), 也即是, 要从哪个节点中取出 1000 个哈希槽, 并将这些槽移动到目标节点上面。如果我们不打算从特定的节点上取出指定数量的哈希槽, 那么可以向 redis-trib 输入 all , 这样的话, 集群中的所有主节点都会成为源节点, redis-trib 将从各个源节点中各取出一部分哈希槽, 凑够 1000 个, 然后移动到目标节点上面:
输入 all 并按下回车之后, redis-trib 将打印出哈希槽的移动计划, 如果你觉得没问题的话, 就可以输入 yes 并再次按下回车:
分片过程中,example.rb 可以继续正常运行。