Linux单机部署Redis集群测试
一、安装单个redis服务
1、下载 redis-5.0.13 版本
在 http://download.redis.io/releases/这个链接里面找到对应的安装包
2、解压
tar -zxvf redis-5.0.13.tar.gz
3、编译
进到解压的目录下,使用 make
编译,如果提示没有安装GCC环境,则使用yum install gcc
安装gcc环境,再次执行编译命令即可
4、启动单机redis服务
-
cd redis-5.0.13/src/
进入src目录
-
./redis-server ../redis.conf
使用默认配置文件启动,这里已经启动成功了
-
./redis-cli
进入redis客户端界面 -
set name tom
设置key的值 -
get name
查看key的值
二、安装集群
1、新建集群文件夹 redis-cluster
计划集群的端口号为 9001-9006
,数据存放在对应的端口号/data
目录下
mkdir /usr/local/redis/redis-cluster
创建集群目录cd /usr/local/redis/redis-cluster
进入集群目录mkdir -p 9001/data 9002/data 9003/data 9004/data 9005/data 9006/data
创建各端口下的data目录
2、复制执行脚本
在 /usr/local/redis/redis-cluster
下创建 bin
文件夹,用来存放集群运行脚本,并把安装好的 Redis 的 src
路径下的运行脚本拷贝过来。
mkdir redis-cluster/bin
创建bin
目录cd /usr/local/redis/redis-5.0.13/src
进入单服务的src
目录cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server redis-trib.rb /usr/local/redis/redis-cluster/bin
拷贝文件到集群目录的bin文件夹下
3、复制一个新的redis实例
将已经安装好的redis
拷贝到9001
文件夹下,并修改redis.conf
配置。
cp -rf /usr/local/redis/redis-5.0.13/* /usr/local/redis/redis-cluster/9001
复制新的实例- 修改以下参数:
1、port 9001(每个节点的端口号)
2、daemonize yes
3、bind 192.168.25.162(绑定当前机器 IP)
4、dir /usr/local/redis/redis-cluster/9001/data/(数据文件存放位置)
5、pidfile /var/run/redis_9001.pid(pid 9001和port要对应)
6、cluster-enabled yes(启动集群模式)
7、cluster-config-file nodes9001.conf(9001和port要对应)
8、cluster-node-timeout 15000
9、appendonly yes
- 查找命令
/daemonize
类似找到对应的参数修改 - 复制剩下的5个节点
cp -rf /usr/local/redis/redis-cluster/9001/* /usr/local/redis/redis-cluster/9002
cp -rf /usr/local/redis/redis-cluster/9001/* /usr/local/redis/redis-cluster/9003
cp -rf /usr/local/redis/redis-cluster/9001/* /usr/local/redis/redis-cluster/9004
cp -rf /usr/local/redis/redis-cluster/9001/* /usr/local/redis/redis-cluster/9005
cp -rf /usr/local/redis/redis-cluster/9001/* /usr/local/redis/redis-cluster/9006
-
修改
9002-9006
的redis.conf
配置文件的port 、dir 、pidfile 、cluster-config-file
参数,可以使用全局替换命令:%s/9001/9002/g
,可以将配置文件里的9001
替换成9002
。然后环境是配置好了,现在开始启动。 -
启动9001-9006六个节点
cd /usr/local/redis/redis-cluster
进入到redis-cluster
目录
./bin/redis-server 9001/redis.conf
./bin/redis-server 9002/redis.conf
./bin/redis-server 9003/redis.conf
./bin/redis-server 9004/redis.conf
./bin/redis-server 9005/redis.conf
./bin/redis-server 9006/redis.conf
- 可以检查一下是否启动成功:
ps -ef | grep redis
- 随便找一个节点测试
1、/usr/local/rdis/redis-cluster/bin/redis-cli -h 192.168.25.162 -p 9001
2、set name tom
连接成功,但是会报错(error) CLUSTERDOWN Hash slot not served(不提供集群的散列槽)
这是因为虽然我们配置并启动了 Redis 集群服务,但是他们暂时还并不在一个集群中,互相直接发现不了,而且还没有可存储的位置,就是所谓的slot(槽)。
安装集群所需软件
1、yum install ruby
2、yum install rubygems
3、gem install redis 安装包比较大,需要等待一段时间
然后再执行服务之间的连接
进入到/usr/local/rdis/redis-cluster
目录
./bin/redis-cli --cluster create 192.168.25.162:9001 192.168.25.162:9002 192.168.25.162:9003 192.168.25.162:9004 192.168.25.162:9005 192.168.25.162:9006 --cluster-replicas 1
目前来看,9001-9003
为主节点,9004-9006
为从节点,并向你确认是否同意这么配置。输入 yes
后,会开始集群创建。
这样就是创建成功了。
验证一下
依然是通过客户端命令连接上,通过集群命令看一下状态和节点信息等。
1、 /usr/local/redis-cluster/bin/redis-cli -c -h 192.168.25.162 -p 9001
2、 cluster info
3、 cluster nodes
接下来就可以直接存储信息了
用redis
桌面工具,连接redis服务器
即可查看数据,数据会自动同步。
停用一个主节点的redis服务,然后设置数据,再重启之后,看看数据是否自动恢复。
查看结果,停用之后再启用,数据是自动复制到了9001的节点,主从复制的集群部署成功。