重修Redis二:伪集群环境搭建

先来回顾下单机版的安装流程:

安装基础环境: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编译命令

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
cd redis-3.0.7
make
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

4..安装

make PREFIX=/usr/local/redis install
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

5.  复制配置文件,修改port为7001

cp redis.conf /usr/local/redis
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

6。启动服务

修改配置文件redis.conf 启动方式为后端:

daemonize yes
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

在当前目录下启动命令 

./bin/redis-server ./redis.conf 
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

步骤三:启动验证:

查看端口:

ps -ef|grep redis
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 连接客户端:

./bin/redis-cli -h 192.168.71.101 -p 7001
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

步骤四:停止服务

强制停止:

kill -9 pid
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

正确的停止方式:

./bin/redis-cli shutdown
./bin/redis-cli  -p 7001 shutdown    #指定端口
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

集群搭建(cluster模式,多主多从)

步骤一:基础环境搭建

1. 在usr/local目录下新建redis-cluster目录,用于存放集群节点

mkdir redis-cluster
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

2.把redis目录下的bin目录下的所有文件复制到/usr/local/redis-cluster/redis01目录下,复制01-06端口为7001-7006

cp -r redis/bin/ redis-cluster/redis01
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 3.修改redis.conf 中端口

cd redis-3.0.7
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 

部署二:安装Ruby环境

需要使用官方提供的 Ruby 脚本,安装 Ruby 环境,(注意安装 ruby 环境前,先 " yum update "一下,确保服务器上的工具包都是最新的),

1.分别输入以下命令进行安装:

yum install ruby 
yum install rubygems
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

安装结果如下图:

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

2. 安装:redis-3.0.7.gem与redis版本最好保持一致

gem install redis-3.0.7.gem
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

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
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

集群查看命令补充:

//集群(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 槽中的键。
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 查看节点状态:

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 检查节点状态:

./redis-trib.rb check 192.168.71.101:7001
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 错误集锦:

重新搭建集群错误:

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.
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

在重新创建集群的时候会出现这样的错误,一般停掉所以节点,删除每个节点的dump.rdb和nodes.conf重新执行配置集群命令。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章