1. 介绍node
2. 集群的不足:redis
1. 准备配置文件
建立cluster目录,并建立6个配置文件ruby
2. 修改配置文件app
port 7000 //端口7000,7002,7003..
daemonize yes //redis后台运行
pidfile ./redis_7000.pid //pidfile文件对应7000,7001,7002
cluster-enabled yes //开启集群 把注释#去掉
cluster-config-file nodes_7000.conf //集群的配置 配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置
appendonly yes //aof日志开启 有须要就开启,它会每次写操做都记录一条日志
//若设置密码,master和slave需同时配置下面两个参数:
masterauth "12345678" //链接master的密码
requirepass "12345678" //本身的密码
3. 启动、测试全部redis实例性能
4. 安装redis-trib所需的 ruby脚本
ruby redis-trib.rb //测试是否安装成功,若已经安装过,可跳过此步测试
安装ui
cp /usr/andy/redis/redis-3.2.0/src/redis-trib.rb .
yum install ruby
yum install rubygems
gem install redis-3.2.2.gem //需下载redis-3.2.2.gem
5. 使用redis-trib.rb建立集群
执行下面命令建立集群(需为真实ip,否则外网没法访问):spa
./redis-trib.rb create --replicas 1 192.168.0.217:7000 192.168.0.217:7001 192.168.0.217:7002 192.168.0.217:7003 192.168.0.217:7004 192.168.0.217:7005
能够看到:.net
一、测试存取值3d
登陆从节点,查看
二、主从切换
结束主节点7000进程,发现7003成了master,而7000节点的状态为fail
恢复7000节点,发现变成了7003的slave
集群
cluster info :打印集群的信息
cluster nodes :列出集群当前已知的全部节点( node),以及这些节点的相关信息。
节点
cluster meet ip port:将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。 cluster forget <node_id> :从集群中移除 node_id 指定的节点。 cluster replicate <node_id> :将当前节点设置为 node_id 指定的节点的从节点。 cluster saveconfig :将节点的配置文件保存到硬盘里面。
槽(slot)
cluster addslots <slot> [slot ...] :将一个或多个槽( slot)指派( assign)给当前节点。 cluster delslots <slot> [slot ...] :移除一个或多个槽对当前节点的指派。 cluster flushslots :移除指派给当前节点的全部槽,让当前节点变成一个没有指派任何槽的节点。 cluster setslot <slot> node <node_id> :将槽 slot 指派给 node_id 指定的节点,若是槽已经指派给另外一个节点,那么先让另外一个节点删除该槽>,而后再进行指派。 cluster setslot <slot> migrating <node_id> :将本节点的槽 slot 迁移到 node_id 指定的节点中。 cluster setslot <slot> importing <node_id> :从 node_id 指定的节点中导入槽 slot 到本节点。 cluster setslot <slot> stable :取消对槽 slot 的导入( import)或者迁移( migrate)。
键
cluster keyslot <key> :计算键 key 应该被放置在哪一个槽上。 cluster countkeysinslot <slot> :返回槽 slot 目前包含的键值对数量。 cluster getkeysinslot <slot> <count> :返回 count 个 slot 槽中的键
下面是经常使用的参数:
一、create:建立集群
二、check:检查集群
三、info:查看集群信息
四、fix:修复集群
五、reshard:在线迁移slot
六、rebalance:平衡集群节点slot数量
七、add-node:将新节点加入集群
八、del-node:从集群中删除节点
九、set-timeout:设置集群节点间心跳链接的超时时间
十、call:在集群所有节点上执行命令
十一、import:将外部redis数据导入集群