0


搭建redis伪集群

搭建redis集群是为了强化redis的读写能力,防止因服务器宕机导致的一系列问题(雪崩)。搭建redis集群一般需要三个master节点以及三个master对应的slave节点,所以一般一组集群至少要6个节点才能保证完整的高可用。其中三个master会分配不同的数据分片区间,当master出现故障时,slave会自动选举成为master顶替主节点继续提供服务。

真正的集群:每个Redis安装到不同服务器上

伪集群:在一台机器上安装多个Redis实例

一.安装Redis

此处安装的是redis5.0以上版本

1.安装c语言编译器

yum -y install gcc

2.下载redis

cd  /usr/local
wget http://download.redis.io/releases/redis-5.0.10.tar.gz

(此处用到了wget若未安装,先行安装 yum install wget -y)

或者使用Xftp将安装包直接传输

3.解压redis并改名

tar -xvf redis-5.0.10.tar.gz
mv redis-5.0.10 redis

4.编译redis

cd redis
make

5.配置redis

修改redis.conf文件

# bind 127.0.0.1  去掉绑定本机IP,让其它机器访问
protected mode no 关闭保护模式

6.启动redis服务器

切换到redis下src中

cd src
./redis-server ../redis.conf

7.启动redis客户端

./redis-cli

二.Redis集群的搭建

1.新建redis-cluster目录,新建redis01~redis06六个子目录

cd /usr/local
mkdir redis-cluster
cd redis-cluster
mkdir redis01 
mkdir redis02
......

2.复制redis/src和redis.conf到redis01~redis06目录中

cd redis
cp -r src/* /usr/local/redis-cluster/redis01
cp -r src/* /usr/local/redis-cluster/redis02
......
cp reids.conf /usr/local/redis-cluster/redis01
cp reids.conf /usr/local/redis-cluster/redis02
......

3.修改对应的redis.conf

cd /usr/local/redis-cluster/redis01
vi redis.cof 修改如下内容
    daemonize yes
    将 # cluster-enabled yes 改为 cluster-enabled yes
    port 7001~7006(可以为其他合理端口)
......

4.在redis-cluster中创建启动脚本start.sh

vi start.sh

内容如下

cd redis01
./redis-server redis.conf
cd ..
cd redis02
./redis-server redis.conf
cd ..
cd redis03
./redis-server redis.conf
cd ..
cd redis04
./redis-server redis.conf
cd ..
cd redis05
./redis-server redis.conf
cd ..
cd redis06
./redis-server redis.conf
cd ..

5.启动redis实例

给予脚本执行权限

chmod +x start.sh

运行脚本

./start.sh

在进行创建集群之前必须运行启动脚本,每次访问集群之前也应如此。

6.创建集群

/usr/local/redis/src/redis-cli --cluster create xx:7001 xx:7002 xx:7003 xx:7004 xx:7005 xx:7006 --cluster-replicas 1

此处xx填写你自己主机的ip地址

--cluster必须是redis5.0才能支持 redis3.0需要ruby脚本此处不做赘述

7.访问集群

/usr/local/redis/src/redis-cli -h xx -c -p 7001

在创建完集群后会自动分配主从关系

info replication

role代表其主从关系

三.可能遇到的问题

1.若在访问伪集群之前会未运行启动脚本会有如下报错

2.若在安装redis时配置文件中的三个bind没有全部注释进行创建集群时会连接到xx:7001时会被拒绝 同时若在创建完集群之后修改了注释也会遇到上面的问题

3.若在修改对应的redis配置文件时(redis01-->redis.conf...) cluster-enabled yes没有删除注释则在创建集群时会遇到如下报错

4.**[ERR] Not all 16384 slots are covered by nodes.**slots分布不正确

./redis-trib.rb fix xx
./redis-trib.rb check xx

5.若使用的不是5.0以上版本的redis

4.SpringBoot连接Redis集群

SpringBoot连接Redis集群

spring.redis.cluster.nodes=xx:7001,xx:7002,xx:7003,xx:7004,xx:7005,xx:7006

Redission的配置Redis集群

ClusterServersConfig clusterServersConfig = config.useClusterServers();
clusterServersConfig.addNodeAddress(
"redis://xx:7001","redis://xx:7002","redis://xx:7003",
"redis://xx:7004", "redis://xx:7005","redis://xx:7006");
标签: redis centos 运维

本文转载自: https://blog.csdn.net/m0_59512882/article/details/126190215
版权归原作者 小矮子大叔 所有, 如有侵权,请联系我们删除。

“搭建redis伪集群”的评论:

还没有评论