因为redis 单机模拟redis集群和多台机器创建集群的原理是一致的,所以为了简便学习,这里就单台安装6个redis实例(最少需要6个实例,不然创建集群的时候回提示最少需要6个redis实例)
1.下载redis安装包
redis下载地址
这里我下载redis-5.0.5.tar.gz 安装 5.0.5版本
2.上传安装包
我习惯将包上传到/data/soft目录,然后在linux上解压redis压缩包,然后将解压后的目录移动到/data目录下
cd /data/soft/
tar -zxvf redis-5.0.5.tar.gz
mv redis-5.0.5 ../
cd /data/redis-5.0.5/
3.安装redis
3.1 安装gcc环境
yum install -y gcc-c++
3.2 编译
cd /data/redis-5.0.5
make
make install PREFIX=/usr/local/redis #指定安装目录
4.配置集群redis.conf文件
在 cluster-config-file目录下创建各个redis实例的redis.conf配置文件
cd /data/redis-5.0.5
mkdir cluster-config-file
cd cluster-config-file
mkdir 7000
mkdir 7001
mkdir 7002
mkdir 7003
mkdir 7004
mkdir 7005
这里举例在7000目录下创建redis0-7000.conf文件(其余5个端口的redis实例配置文件参照这个配置文件进行修改)
cluster-enabled yes
port 7000 #不同redis实例需要改成对应端口
cluster-config-file nodes-7000.conf #不同redis实例需要改成对应端口
pidfile /data/redis/redis_7000.pid #不同redis实例需要改成对应端口
daemonize yes #设置为后台守护进程
bind 0.0.0.0
5.启动各个redis实例
/usr/local/redis/bin/redis-server /data/redis-5.0.5/cluster-config-file/7000/redis-7000.conf
/usr/local/redis/bin/redis-server /data/redis-5.0.5/cluster-config-file/7001/redis-7001.conf
/usr/local/redis/bin/redis-server /data/redis-5.0.5/cluster-config-file/7002/redis-7002.conf
/usr/local/redis/bin/redis-server /data/redis-5.0.5/cluster-config-file/7003/redis-7003.conf
/usr/local/redis/bin/redis-server /data/redis-5.0.5/cluster-config-file/7004/redis-7004.conf
/usr/local/redis/bin/redis-server /data/redis-5.0.5/cluster-config-file/7005/redis-7005.conf
查看进程判断启动是否成功
可以看到6个进程都存在,判断各个redis实例创建成功
排错方法
如果发现redis进程一直起不来,可以将对应的redis实例的redis-xxx.conf中daemonize 改为no 变成前台启动,可以看到日志是哪里出现问题。
6.构建redis集群
因为我们安装的redis 版本是5以上的,所以构建的方式如下
redis-cli --cluster create 192.168.235.137:7000 192.168.235.137:7001 192.168.235.137:7002 192.168.235.137:7003 192.168.235.137:7004 192.168.235.137:7005 --cluster-replicas 1
输入yes构建redis集群
判断集群是否构建成功
/usr/local/redis/bin/redis-cli -c -p 7000 #-p指的是redis实例的端口,由于我们6个实例在同一台机器上面,所以这里你也可以填写7001 7002 7003 7004 7005
CLUSTER INFO #查看集群基本信息
CLUSTER NODES #查看集群节点信息 以这里为准 只有所有的节点没有出现fail信息才表示集群搭建成功
7.redis常用命令
#redis停止
/usr/local/redis/bin/redis-cli -p 7000 shutdown # -p 指定关闭哪个端口实例的redis
8.从节点读取数据
需要先设置readonly
才能在从节点读取到数据
127.0.0.1:7004> keys *
1) "f"
2) "b"
127.0.0.1:7004> readonly
OK
127.0.0.1:7004> get b
"bbb"
参考网站:
https://redis.io/
https://blog.csdn.net/qq_36737803/article/details/90578860