The important thing in life is to have a great aim , and the determination

常用链接

统计

IT技术链接

保险相关

友情链接

基金知识

生活相关

最新评论

Redis-5.0.5集群环境

从redis官网下载(http://download.redis.io/releases/redis-5.0.5.tar.gz)最新版本的redis的源码包redis-5.0.5.tar.gz。 安装redis 创建目录/home/test/redis,上传redis包并解压缩 [root@test local]#mkdir -p /home/test/redis 将redis-5.0.5.tar.gz上传到服务器的/home/test/redis目录下 [root@test local]#cd /home/test/redis [root@test local]#tar -xzf redis-5.0.5.tar.gz 编译安装 执行命令make && make install [root@test redis]# cd redis-5.0.5 [root@test redis]# make && make install 创建集群目录 在/home/test/redis目录下创建集群目录 [root@test redis]# mkdir redis-cluster [root@test redis]# cd redis-cluster/ 在集群目录下创建节点目录 小编的示例中是在单台服务器安装9个节点,所以下面创建9个目录 [root@test redis-cluster]# mkdir 7000 7001 7002 7003 7004 7005 7006 7007 7008 [root@test redis-cluster]# ls 7000 7001 7002 7003 7004 7005 7006 7007 7008 集群中的节点配置文件修改 把如下redis.conf 配置内容粘贴进去 [root@test local]#vi 7000/redis.conf [root@test local]#vi 7001/redis.conf [root@test local]#vi 7002/redis.conf [root@test local]#vi 7003/redis.conf [root@test local]#vi 7004/redis.conf [root@test local]#vi 7005/redis.conf [root@test local]#vi 7006/redis.conf [root@test local]#vi 7007/redis.conf [root@test local]#vi 7008/redis.conf redis.conf 配置 #端口7000,7001,7002 port 7000 #默认ip为127.0.0.1,需要改为其他节点机器可访问的ip,否则创建集群时无法访问对应的端口,无法创建集群 bind 172.30.14.240 #redis后台运行 daemonize yes #pidfile文件对应7000,7001,7002… pidfile /var/run/redis_7000.pid #开启集群,把注释#去掉 cluster-enabled yes #集群的配置,配置文件首次启动自动生成 7000,7001,7002 cluster-config-file nodes_7000.conf #请求超时,默认15秒,可自行设置 cluster-node-timeout 10100 Eof日志开启,有需要就开启,它会每次写操作都记录一条日志 appendonly yes 集群中的节点启动 /home/test/redis/redis-5.0.5/src/redis-server /home/test/redis/redis-cluster/7000/redis.conf /home/test/redis/redis-5.0.5/src/redis-server /home/test/redis/redis-cluster/7001/redis.conf /home/test/redis/redis-5.0.5/src/redis-server /home/test/redis/redis-cluster/7002/redis.conf /home/test/redis/redis-5.0.5/src/redis-server /home/test/redis/redis-cluster/7003/redis.conf /home/test/redis/redis-5.0.5/src/redis-server /home/test/redis/redis-cluster/7004/redis.conf /home/test/redis/redis-5.0.5/src/redis-server /home/test/redis/redis-cluster/7005/redis.conf /home/test/redis/redis-5.0.5/src/redis-server /home/test/redis/redis-cluster/7006/redis.conf /home/test/redis/redis-5.0.5/src/redis-server /home/test/redis/redis-cluster/7007/redis.conf /home/test/redis/redis-5.0.5/src/redis-server /home/test/redis/redis-cluster/7008/redis.conf 出现以下信息,表示启动成功: 41846:C 24 Oct 10:51:47.070 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 41846:C 24 Oct 10:51:47.070 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=41846, just started 41846:C 24 Oct 10:51:47.070 # Configuration loaded 检查服务 [root@test redis-cluster]# ps -ef | grep redis root 41396 1 0 10:51 ? 00:00:00 /home/test/redis/redis-5.0.5/src/redis-server 172.30.14.240:7000 [cluster] root 41601 1 0 10:51 ? 00:00:00 /home/test/redis/redis-5.0.5/src/redis-server 172.30.14.240:7001 [cluster] root 41645 1 0 10:51 ? 00:00:00 /home/test/redis/redis-5.0.5/src/redis-server 172.30.14.240:7002 [cluster] root 41779 1 0 10:51 ? 00:00:00 /home/test/redis/redis-5.0.5/src/redis-server 172.30.14.240:7003 [cluster] root 41818 1 0 10:51 ? 00:00:00 /home/test/redis/redis-5.0.5/src/redis-server 172.30.14.240:7004 [cluster] root 41826 1 0 10:51 ? 00:00:00 /home/test/redis/redis-5.0.5/src/redis-server 172.30.14.240:7005 [cluster] root 41834 1 0 10:51 ? 00:00:00 /home/test/redis/redis-5.0.5/src/redis-server 172.30.14.240:7006 [cluster] root 41839 1 0 10:51 ? 00:00:00 /home/test/redis/redis-5.0.5/src/redis-server 172.30.14.240:7007 [cluster] root 41847 1 0 10:51 ? 00:00:00 /home/test/redis/redis-5.0.5/src/redis-server 172.30.14.240:7008 [cluster] 监听redis端口 $ netstat -tnlp | grep redis //监听redis端口 [root@test redis-cluster]# netstat -tnlp | grep redis tcp 0 0 172.30.14.240:17000 0.0.0.0:* LISTEN 41396/redis-server tcp 0 0 172.30.14.240:17001 0.0.0.0:* LISTEN 41601/redis-server tcp 0 0 172.30.14.240:17002 0.0.0.0:* LISTEN 41645/redis-server tcp 0 0 172.30.14.240:17003 0.0.0.0:* LISTEN 41779/redis-server tcp 0 0 172.30.14.240:17004 0.0.0.0:* LISTEN 41818/redis-server tcp 0 0 172.30.14.240:17005 0.0.0.0:* LISTEN 41826/redis-server tcp 0 0 172.30.14.240:17006 0.0.0.0:* LISTEN 41834/redis-server tcp 0 0 172.30.14.240:17007 0.0.0.0:* LISTEN 41839/redis-server tcp 0 0 172.30.14.240:17008 0.0.0.0:* LISTEN 41847/redis-server tcp 0 0 172.30.14.240:7000 0.0.0.0:* LISTEN 41396/redis-server tcp 0 0 172.30.14.240:7001 0.0.0.0:* LISTEN 41601/redis-server tcp 0 0 172.30.14.240:7002 0.0.0.0:* LISTEN 41645/redis-server tcp 0 0 172.30.14.240:7003 0.0.0.0:* LISTEN 41779/redis-server tcp 0 0 172.30.14.240:7004 0.0.0.0:* LISTEN 41818/redis-server tcp 0 0 172.30.14.240:7005 0.0.0.0:* LISTEN 41826/redis-server tcp 0 0 172.30.14.240:7006 0.0.0.0:* LISTEN 41834/redis-server tcp 0 0 172.30.14.240:7007 0.0.0.0:* LISTEN 41839/redis-server tcp 0 0 172.30.14.240:7008 0.0.0.0:* LISTEN 41847/redis-server 创建集群 注意:在任意一台上运行 不要在每台机器上都运行,一台就够了 /home/test/redis/redis-5.0.5/src/redis-cli --cluster create 172.30.14.240:7000 172.30.14.240:7001 172.30.14.240:7002 172.30.14.240:7003 172.30.14.240:7004 172.30.14.240:7005 172.30.14.240:7006 172.30.14.240:7007 172.30.14.240:7008 --cluster-replicas 1 需要将其中的IP和端口改为实际安装的的IP地址和端口 注意:此步骤中需要手动敲入yes [root@test redis-cluster]# /home/test/redis/redis-5.0.5/src/redis-cli --cluster create --replicas 1 172.30.14.240:7000 172.30.14.240:7001 172.30.14.240:7002 172.30.14.240:7003 172.30.14.240:7004 172.30.14.240:7005 172.30.14.240:7006 172.30.14.240:7007 172.30.14.240:7008 Creating cluster Performing hash slots allocation on 9 nodes… Using 4 masters: 172.30.14.240:7000 172.30.14.240:7001 172.30.14.240:7002 172.30.14.240:7003 Adding replica 172.30.14.240:7004 to 172.30.14.240:7000 Adding replica 172.30.14.240:7005 to 172.30.14.240:7001 Adding replica 172.30.14.240:7006 to 172.30.14.240:7002 Adding replica 172.30.14.240:7007 to 172.30.14.240:7003 Adding replica 172.30.14.240:7008 to 172.30.14.240:7000 M: 5992c09409c106b566f7876935d39df2ced31d63 172.30.14.240:7000 slots:0-4095 (4096 slots) master M: 8e842f0cf0cd2569effa8170834618a6fceb144c 172.30.14.240:7001 slots:4096-8191 (4096 slots) master M: d5d363c4c7d0855e245a0121c098918d9a2d9f54 172.30.14.240:7002 slots:8192-12287 (4096 slots) master M: c6422e581cface110c30d302db796e88dca49d8d 172.30.14.240:7003 slots:12288-16383 (4096 slots) master S: 008aab9504f9afac5be41aea92d995d4d1f94c0c 172.30.14.240:7004 replicates 5992c09409c106b566f7876935d39df2ced31d63 S: 7304749ee131927a21d48fb7d4cb360dacf3b7ac 172.30.14.240:7005 replicates 8e842f0cf0cd2569effa8170834618a6fceb144c S: bf809bd10b59b16daa4169f950891c0839bfa649 172.30.14.240:7006 replicates d5d363c4c7d0855e245a0121c098918d9a2d9f54 S: 0e93a0a1c627cc84572798b78142f9e73407ec72 172.30.14.240:7007 replicates c6422e581cface110c30d302db796e88dca49d8d S: de666ccd190e9a7b826b558d89ee2cddf75f43e7 172.30.14.240:7008 replicates 5992c09409c106b566f7876935d39df2ced31d63 Can I set the above configuration? (type ‘yes’ to accept): yes Nodes configuration updated Assign a different config epoch to each node Sending CLUSTER MEET messages to join the cluster Waiting for the cluster to join… Performing Cluster Check (using node 172.30.14.240:7000) M: 5992c09409c106b566f7876935d39df2ced31d63 172.30.14.240:7000 slots:0-4095 (4096 slots) master 2 additional replica(s) M: c6422e581cface110c30d302db796e88dca49d8d 172.30.14.240:7003 slots:12288-16383 (4096 slots) master 1 additional replica(s) S: de666ccd190e9a7b826b558d89ee2cddf75f43e7 172.30.14.240:7008 slots: (0 slots) slave replicates 5992c09409c106b566f7876935d39df2ced31d63 S: 7304749ee131927a21d48fb7d4cb360dacf3b7ac 172.30.14.240:7005 slots: (0 slots) slave replicates 8e842f0cf0cd2569effa8170834618a6fceb144c S: bf809bd10b59b16daa4169f950891c0839bfa649 172.30.14.240:7006 slots: (0 slots) slave replicates d5d363c4c7d0855e245a0121c098918d9a2d9f54 M: d5d363c4c7d0855e245a0121c098918d9a2d9f54 172.30.14.240:7002 slots:8192-12287 (4096 slots) master 1 additional replica(s) M: 8e842f0cf0cd2569effa8170834618a6fceb144c 172.30.14.240:7001 slots:4096-8191 (4096 slots) master 1 additional replica(s) S: 0e93a0a1c627cc84572798b78142f9e73407ec72 172.30.14.240:7007 slots: (0 slots) slave replicates c6422e581cface110c30d302db796e88dca49d8d S: 008aab9504f9afac5be41aea92d995d4d1f94c0c 172.30.14.240:7004 slots: (0 slots) slave replicates 5992c09409c106b566f7876935d39df2ced31d63 [OK] All nodes agree about slots configuration. Check for open slots… Check slots coverage… [OK] All 16384 slots covered. 关闭集群 批量关闭 pkill redis 逐个关闭 /home/test/redis/redis-5.0.5/src/redis-cli -c -h 172.30.14.240 -p 7000 shutdown /home/test/redis/redis-5.0.5/src/redis-cli -c -h 172.30.14.240 -p 7000 shutdown /home/test/redis/redis-5.0.5/src/redis-cli -c -h 172.30.14.240 -p 7000 shutdown /home/test/redis/redis-5.0.5/src/redis-cli -c -h 172.30.14.240 -p 7000 shutdown /home/test/redis/redis-5.0.5/src/redis-cli -c -h 172.30.14.240 -p 7000 shutdown /home/test/redis/redis-5.0.5/src/redis-cli -c -h 172.30.14.240 -p 7000 shutdown 集群验证 连接集群测试 参数 -C 可连接到集群,因为 redis.conf 将 bind 改为了ip地址,所以 -h 参数不可以省略,-p 参数为端口号 我们在172.30.14.240机器redis 7000 的节点set 一个key [root@test redis-cluster]# /home/test/redis/redis-5.0.5/src/redis-cli -h 172.30.14.240 -c -p 7000 172.30.14.240:7000> set name test -> Redirected to slot [5798] located at 172.30.14.240:7001 OK 172.30.14.240:7001> get name “test” 172.30.14.240:7001> 发现redis set name 之后重定向到172.30.14.240机器 redis 7001 这个节点 检查集群状态 $ /home/test/redis/redis-5.0.5/src/ redis-cli --cluster check 172.30.14.240:7000 [root@test redis-cluster]# /home/test/redis/redis-5.0.5/src/redis-cli --cluster check 172.30.14.240:7000 Performing Cluster Check (using node 172.30.14.240:7000) M: 5992c09409c106b566f7876935d39df2ced31d63 172.30.14.240:7000 slots:0-4095 (4096 slots) master 2 additional replica(s) M: c6422e581cface110c30d302db796e88dca49d8d 172.30.14.240:7003 slots:12288-16383 (4096 slots) master 1 additional replica(s) S: de666ccd190e9a7b826b558d89ee2cddf75f43e7 172.30.14.240:7008 slots: (0 slots) slave replicates 5992c09409c106b566f7876935d39df2ced31d63 S: 7304749ee131927a21d48fb7d4cb360dacf3b7ac 172.30.14.240:7005 slots: (0 slots) slave replicates 8e842f0cf0cd2569effa8170834618a6fceb144c S: bf809bd10b59b16daa4169f950891c0839bfa649 172.30.14.240:7006 slots: (0 slots) slave replicates d5d363c4c7d0855e245a0121c098918d9a2d9f54 M: d5d363c4c7d0855e245a0121c098918d9a2d9f54 172.30.14.240:7002 slots:8192-12287 (4096 slots) master 1 additional replica(s) M: 8e842f0cf0cd2569effa8170834618a6fceb144c 172.30.14.240:7001 slots:4096-8191 (4096 slots) master 1 additional replica(s) S: 0e93a0a1c627cc84572798b78142f9e73407ec72 172.30.14.240:7007 slots: (0 slots) slave replicates c6422e581cface110c30d302db796e88dca49d8d S: 008aab9504f9afac5be41aea92d995d4d1f94c0c 172.30.14.240:7004 slots: (0 slots) slave replicates 5992c09409c106b566f7876935d39df2ced31d63 [OK] All nodes agree about slots configuration. Check for open slots… Check slots coverage… [OK] All 16384 slots covered. 列出集群节点 列出集群当前已知的所有节点(node),以及这些节点的相关信息 [root@test redis-cluster]# /home/test/redis/redis-5.0.5/src/redis-cli -h 172.30.14.240 -c -p 7000 172.30.14.240:7000> cluster nodes c6422e581cface110c30d302db796e88dca49d8d 172.30.14.240:7003@17003 master - 0 1508814078128 4 connected 12288-16383 de666ccd190e9a7b826b558d89ee2cddf75f43e7 172.30.14.240:7008@17008 slave 5992c09409c106b566f7876935d39df2ced31d63 0 1508814078000 9 connected 7304749ee131927a21d48fb7d4cb360dacf3b7ac 172.30.14.240:7005@17005 slave 8e842f0cf0cd2569effa8170834618a6fceb144c 0 1508814077125 6 connected bf809bd10b59b16daa4169f950891c0839bfa649 172.30.14.240:7006@17006 slave d5d363c4c7d0855e245a0121c098918d9a2d9f54 0 1508814077000 7 connected d5d363c4c7d0855e245a0121c098918d9a2d9f54 172.30.14.240:7002@17002 master - 0 1508814079130 3 connected 8192-12287 8e842f0cf0cd2569effa8170834618a6fceb144c 172.30.14.240:7001@17001 master - 0 1508814078128 2 connected 4096-8191 0e93a0a1c627cc84572798b78142f9e73407ec72 172.30.14.240:7007@17007 slave c6422e581cface110c30d302db796e88dca49d8d 0 1508814080131 8 connected 008aab9504f9afac5be41aea92d995d4d1f94c0c 172.30.14.240:7004@17004 slave 5992c09409c106b566f7876935d39df2ced31d63 0 1508814076000 5 connected 5992c09409c106b566f7876935d39df2ced31d63 172.30.14.240:7000@17000 myself,master - 0 1508814077000 1 connected 0-4095 打印集群信息 172.30.14.240:7000> cluster info cluster_state:ok cluster_slots_assigned:16384 cluster_slots_ok:16384 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:9 cluster_size:4 cluster_current_epoch:9 cluster_my_epoch:1 cluster_stats_messages_ping_sent:523 cluster_stats_messages_pong_sent:546 cluster_stats_messages_sent:1069 cluster_stats_messages_ping_received:538 cluster_stats_messages_pong_received:523 cluster_stats_messages_meet_received:8 cluster_stats_messages_received:1069 集群命令 语法格式 redis-cli -c -p port 集群 cluster info :打印集群的信息 cluster nodes :列出集群当前已知的所有节点( node),以及这些节点的相关信息。 节点 cluster meet :将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。 cluster forget :从集群中移除 node_id 指定的节点,node_id通过cluster nodes查询 cluster replicate :将当前节点设置为 node_id 指定的节点的从节点。 cluster saveconfig :将节点的配置文件保存到硬盘里面。 槽(slot) cluster addslots [slot …] :将一个或多个槽( slot)指派( assign)给当前节点。 cluster delslots [slot …] :移除一个或多个槽对当前节点的指派。 cluster flushslots :移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点。 cluster setslot node :将槽 slot 指派给 node_id 指定的节点,如果槽已经指派给另一个节点,那么先让另一个节点删除该槽>,然后再进行指派。 cluster setslot migrating :将本节点的槽 slot 迁移到 node_id 指定的节点中。 cluster setslot importing :从 node_id 指定的节点中导入槽 slot 到本节点。 cluster setslot stable :取消对槽 slot 的导入( import)或者迁移( migrate)。 键 cluster keyslot :计算键 key 应该被放置在哪个槽上。 cluster countkeysinslot :返回槽 slot 目前包含的键值对数量。 cluster getkeysinslot :返回 count 个 slot 槽中的键

posted on 2019-08-07 11:19 鸿雁 阅读(159) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: