先来回顾下单机版的安装流程:
安装基础环境:Vm12+Centos6.5+CRT7.5
步骤一:下载安装C++编译环境
yum install gcc-c++
步骤二:安装
1.从官网下载redsi版本,通过FTP工具上传到Linux环境下(版本:redis-3.0.7.tar.gz)
/usr/local/
2..解压文件:
tar -zxvf redis-3.0.7.tar.gz
3..进入目录redis-3.0.7,执行make编译命令
cd redis-3.0.7
make
4..安装
make PREFIX=/usr/local/redis install
5. 复制配置文件,修改port为7001
cp redis.conf /usr/local/redis
6。启动服务
修改配置文件redis.conf 启动方式为后端:
daemonize yes
在当前目录下启动命令
./bin/redis-server ./redis.conf
步骤三:启动验证:
查看端口:
ps -ef|grep redis
连接客户端:
./bin/redis-cli -h 192.168.71.101 -p 7001
步骤四:停止服务
强制停止:
kill -9 pid
正确的停止方式:
./bin/redis-cli shutdown
./bin/redis-cli -p 7001 shutdown #指定端口
集群搭建(cluster模式,多主多从)
步骤一:基础环境搭建
1. 在usr/local目录下新建redis-cluster目录,用于存放集群节点
mkdir redis-cluster
2.把redis目录下的bin目录下的所有文件复制到/usr/local/redis-cluster/redis01目录下,复制01-06端口为7001-7006
cp -r redis/bin/ redis-cluster/redis01
3.修改redis.conf 中端口
cd redis-3.0.7
部署二:安装Ruby环境
需要使用官方提供的 Ruby 脚本,安装 Ruby 环境,(注意安装 ruby 环境前,先 " yum update "一下,确保服务器上的工具包都是最新的),
1.分别输入以下命令进行安装:
yum install ruby
yum install rubygems
安装结果如下图:
2. 安装:redis-3.0.7.gem与redis版本最好保持一致
gem install redis-3.0.7.gem
3.创建集群:前三个为主节点,后三个从节点,选项 --replicas 1 表示集群中的每个主节点创建一个从节点。复制集群启动脚本到/usr/local/redis-cluster/(在redis解压文件的源代码里,即redis/src目录下的redis-trib.rb文件)
./redis-trib.rb create --replicas 1 192.168.71.101:7001 192.168.71.101:7002 192.168.71.101:7003 192.168.71.101:7004 192.168.71.101:7005 192.168.71.101:7006
集群查看命令补充:
//集群(cluster)
CLUSTER INFO 打印集群的信息
CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息。
//节点(node)
CLUSTER MEET 将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。
CLUSTER FORGET 从集群中移除 node_id 指定的节点。
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)。
//键 (key)
CLUSTER KEYSLOT 计算键 key 应该被放置在哪个槽上。
CLUSTER COUNTKEYSINSLOT 返回槽 slot 目前包含的键值对数量。
CLUSTER GETKEYSINSLOT 返回 count 个 slot 槽中的键。
查看节点状态:
检查节点状态:
./redis-trib.rb check 192.168.71.101:7001
错误集锦:
重新搭建集群错误:
ERR] Node 192.168.71.101:7001 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
在重新创建集群的时候会出现这样的错误,一般停掉所以节点,删除每个节点的dump.rdb和nodes.conf重新执行配置集群命令。