快捷搜索:  汽车  科技

redis3.0.4集群搭建(redis集群搭建及启动)

redis3.0.4集群搭建(redis集群搭建及启动)redis-cli -a cyclone -c -h 192.168.220.11 -p 7001 shutdown查看结果查看集群节点信息: cd /opt/redis mkdir cluster # 创建redis实例根目录 cd cluster mkdir 7001 # 创建具体redis实例相关目录,指定其端口号为7001 cd 7001 cp /opt/redis/redis.conf . #复制配置文件,修改之后当作当前redis实例的启动配置 mkdir data # 创建数据存储目录修改配置文件文件,最小化修改配置下面为需要修改的配置项以及说明port 7001 # 客户端连接端口bind 192.168.220.11 #实例绑定的IP地址dir /opt/redis/cluster/7001/data # redis实例数据配置存储位置daemonize yes # 是否

redis版本:redis-5.0.3.tar.gz
操作系统:完全新安装的centos7.6系统
使用一台虚拟机模拟6个redis节点,3个master,3个slave 虚拟机IP为192.168.220.11
和使用不同的IP创建集群基本过程一致,为了方便,就不创建多个虚拟机了。
开始搭建:

yum install -y wget gcc systemctl stop firewalld.service systemctl disable firewalld.service cd /opt wget http://download.redis.io/releases/redis-5.0.3.tar.gz tar zxvf redis-5.0.3.tar.gz mv redis-5.0.3 redis cd redis

解压后目录结构如下:

redis3.0.4集群搭建(redis集群搭建及启动)(1)

编译安装:

make MALLOC=libc make install

redis3.0.4集群搭建(redis集群搭建及启动)(2)

src目录包含了redis server和redis cli的相关命令脚本,将该路径加入到PATH环境变量当中,方便使用

cd /opt/redis mkdir cluster # 创建redis实例根目录 cd cluster mkdir 7001 # 创建具体redis实例相关目录,指定其端口号为7001 cd 7001 cp /opt/redis/redis.conf . #复制配置文件,修改之后当作当前redis实例的启动配置 mkdir data # 创建数据存储目录

修改配置文件文件,最小化修改配置下面为需要修改的配置项以及说明port 7001 # 客户端连接端口bind 192.168.220.11 #实例绑定的IP地址dir /opt/redis/cluster/7001/data # redis实例数据配置存储位置daemonize yes # 是否以后台进程的方式启动redis实例pidfile pidfile /var/run/redis_7001.pid # 指定该进程pidfilecluster-enabled yes # 开启集群模式cluster-config-file # 集群中该实例的配置文件,该文件会在data目录下生成appendonly yes # 开启aop日志protected-mode no # 关闭保护模式requirepass cyclone # master开启密码保护masterauth cyclone # replica同master交互密码接下来按照同样的方式创建7002 7003 7004 7005 7006的文件夹,修改配置文件依次启动redis实例redis-server /opt/redis/cluster/7001/redis.confredis-server /opt/redis/cluster/7002/redis.confredis-server /opt/redis/cluster/7003/redis.confredis-server /opt/redis/cluster/7004/redis.confredis-server /opt/redis/cluster/7005/redis.confredis-server /opt/redis/cluster/7006/redis.conf查看启动结果

redis3.0.4集群搭建(redis集群搭建及启动)(3)

集群的创建,将redis实例联系起来,创建一个集群

redis-cli -a cyclone --cluster create --cluster-replicas 1 192.168.220.11:7001 192.168.220.11:7002 192.168.220.11:7003 192.168.220.11:7004 192.168.220.11:7005 192.168.220.11:7006输出如下:

redis3.0.4集群搭建(redis集群搭建及启动)(4)

一些slave和master在相同的物理主机上,所以会出现一些警告,这个不影响。
连接到集群的某个节点:

redis-cli -a cyclone -c -h 192.168.220.11 -p 7001

redis3.0.4集群搭建(redis集群搭建及启动)(5)

查看集群相关信息:

redis3.0.4集群搭建(redis集群搭建及启动)(6)

查看集群节点信息:

redis3.0.4集群搭建(redis集群搭建及启动)(7)

集群相关操作:

1.关闭集群的某个节点,比如关闭端口号为7001的实例:

redis-cli -a cyclone -c -h 192.168.220.11 -p 7001 shutdown
查看结果

redis3.0.4集群搭建(redis集群搭建及启动)(8)

关闭之后,使用redis-server /opt/redis/cluster/7001/redis.conf命令可以将实例重新启动,启动完成之后,自动加入到集群当中

redis3.0.4集群搭建(redis集群搭建及启动)(9)

2.集群的关闭

逐个关闭redis实例进程即可
查找redis实例进程号

ps -ef | grep redis

redis3.0.4集群搭建(redis集群搭建及启动)(10)

关闭redis进程 使用kill -9 ${进程号},如果需要关闭多个进程,进程号之间空格隔开即可

kill -9 10252 10257 10262 10267 10272 10294也可执行以下命令来关闭redis进程pkill -9 redis

3.redis集群的重新启动

保留原来的数据:
逐个关闭redis实例,再逐个的启动即可。

丢弃原来的数据:
关闭实例,清空实例中数据存放目录的所有内容,然后逐个启动实例,在任意一个实例上执行集群的创建命令即可 本质上就是创建一个新的集群
清空数据存储目录内容:

rm -rf /opt/redis/cluster/7001/data/* rm -rf /opt/redis/cluster/7002/data/* rm -rf /opt/redis/cluster/7003/data/* rm -rf /opt/redis/cluster/7004/data/* rm -rf /opt/redis/cluster/7005/data/* rm -rf /opt/redis/cluster/7006/data/*

启动实例:

redis-server /opt/redis/cluster/7001/redis.conf redis-server /opt/redis/cluster/7002/redis.conf redis-server /opt/redis/cluster/7003/redis.conf redis-server /opt/redis/cluster/7004/redis.conf redis-server /opt/redis/cluster/7005/redis.conf redis-server /opt/redis/cluster/7006/redis.conf

执行集群创建命令:

redis-cli -a cyclone --cluster create --cluster-replicas 1 192.168.220.11:7001 192.168.220.11:7002 192.168.220.11:7003 192.168.220.11:7004 192.168.220.11:7005 192.168.220.11:7006

redis cluster-cluster 命令手动管理redis集群

3、将 ip 和 port 所指定的节点添加到集群中CLUSTER MEET <ip> <port>4、从集群中移除 node_id 指定的节点CLUSTER FORGET <node_id>5、将当前节点设置为 node_id 指定的节点的从节点CLUSTER REPLICATE <node_id>6、将节点的配置文件保存到硬盘里面CLUSTER SAVECONFIG7、将一个或多个槽(slot)指派(assign)给当前节点CLUSTER ADDSLOTS <slot> [slot ...]8、移除一个或多个槽对当前节点的指派CLUSTER DELSLOTS <slot> [slot ...]9、 移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点CLUSTER FLUSHSLOTS10、将槽 slot 指派给 node_id 指定的节点,如果槽已经指派给另一个节点,那么先让另一个节点删除该槽>,然后再进行指派CLUSTER SETSLOT <slot> NODE <node_id>11、将本节点的槽 slot 迁移到 node_id 指定的节点中CLUSTER SETSLOT <slot> MIGRATING <node_id>12、从 node_id 指定的节点中导入槽 slot 到本节点CLUSTER SETSLOT <slot> IMPORTING <node_id>13、取消对槽 slot 的导入(import)或者迁移(migrate)CLUSTER SETSLOT <slot> STABLE14、计算键 key 应该被放置在哪个槽上CLUSTER KEYSLOT <key>15、返回槽 slot 目前包含的键值对数量CLUSTER COUNTKEYSINSLOT <slot>16、返回 count 个 slot 槽中的键CLUSTER GETKEYSINSLOT <slot> <count>

猜您喜欢: