Redis Cluster学习笔记(3)

~/redis-3.0.1/src# apt-get install ruby gem ~/redis-3.0.1/src# gem sources -a ~/redis-3.0.1/src# gem install redis ~/redis-3.0.1/src# cp redis-trib.rb /usr/local/redis3/bin/ ~/redis-3.0.1/src# ln -sf /usr/local/redis3/bin/redis-trib.rb /usr/bin/redis-trib.rb ~/redis-3.0.1/src# redis-trib.rb create --replicas 1 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 127.0.0.1:7006 M: 1984c27297c6ef50bbfcbd35c11b93cc40ba17e4 127.0.0.1:7001 slots:0-5460 (5461 slots) master M: 481e256be4c724f5a2c64a761e52b4be61ca45b4 127.0.0.1:7002 slots:5461-10922 (5462 slots) master M: b5b652fa02d9999861e66c843b01fd2700c02adf 127.0.0.1:7003 slots:10923-16383 (5461 slots) master S: 821ec823dc0c2d4f65319e84fe74157fb1014155 127.0.0.1:7004 replicates 1984c27297c6ef50bbfcbd35c11b93cc40ba17e4 S: b3b8541b9520d707180d56a2fb3cf3ee6895ed10 127.0.0.1:7005 replicates 481e256be4c724f5a2c64a761e52b4be61ca45b4 S: d2b437ca8b9007dcdb63ac16210f6540860361e3 127.0.0.1:7006 replicates b5b652fa02d9999861e66c843b01fd2700c02adf Can I set the above configuration? (type 'yes' to accept): [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.

以上信息的其中一部分可以通过向集群中的任意节点(主节点或者从节点都可以)发送 CLUSTER NODES 命令来获得。该命令还可以获得节点 ID , IP 地址和端口号, 标志(flag), 最后发送 PING 的时间, 最后接收 PONG 的时间, 连接状态, 节点负责处理的槽。

redis-cli -p 7001 cluster nodes 481e256be4c724f5a2c64a761e52b4be61ca45b4 127.0.0.1:7002 master - 0 1431186119174 2 connected 5461-10922 b3b8541b9520d707180d56a2fb3cf3ee6895ed10 127.0.0.1:7005 slave 481e256be4c724f5a2c64a761e52b4be61ca45b4 0 1431186120677 5 connected d2b437ca8b9007dcdb63ac16210f6540860361e3 127.0.0.1:7006 slave b5b652fa02d9999861e66c843b01fd2700c02adf 0 1431186119174 6 connected b5b652fa02d9999861e66c843b01fd2700c02adf 127.0.0.1:7003 master - 0 1431186118673 3 connected 10923-16383 821ec823dc0c2d4f65319e84fe74157fb1014155 127.0.0.1:7004 slave 1984c27297c6ef50bbfcbd35c11b93cc40ba17e4 0 1431186120176 4 connected 1984c27297c6ef50bbfcbd35c11b93cc40ba17e4 127.0.0.1:7001 myself,master - 0 0 1 connected 0-5460

5. 连接Redis集群

通过上面的输出,我们可以看出Redis三个主节点的slot范围。一个 Redis 客户端可以向集群中的任意节点(包括从节点)发送命令请求。我们首先连接第一个节点:

redis-cli -p 7001 127.0.0.1:7001> set a 1 (error) MOVED 15495 127.0.0.1:7003 127.0.0.1:7001> get a (error) MOVED 15495 127.0.0.1:7003 127.0.0.1:7001> set b 1 OK

节点会对命令请求进行分析和key的slot计算,并且会查找这个命令所要处理的键所在的槽。如果要查找的哈希槽正好就由接收到命令的节点负责处理, 那么节点就直接执行这个命令。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/a0d2c0f1550ef795a4a45794555f4265.html