网站空间的分类wordpress前台登录主题
一、介绍
Redis 集群有着高可用、易扩展、更好的性能等优势,本文主要是实战搭建一个三主三从的 Redis 集群。
正常来说,搭建 Redis 集群需要 6 台服务器。为了简单一点,本文通过一台服务器,6 个端口,搭建一个 Redis 的伪集群。
二、准备环境
| IP 地址 | 端口号 | 
|---|---|
| 10.211.55.4 | 8001~8006 | 
三、安装 Redis
3.1、安装 C/C++ 环境,编译 Redis 安装包使用
yum -y install gcc gcc-c++ make  
 
3.2、下载 Redis 安装包
# 切换软件安装目录  
cd /usr/local/  # 新建 redis 安装目录  
mkdir redis  # 切换到 redis 安装目录  
cd redis  # 下载 redis 安装包  
wget http://download.redis.io/releases/redis-6.2.5.tar.gz  # 解压 redis 安装包  
tar -zxvf redis-6.2.5.tar.gz  
 
3.3、编译 redis
# 进入解压后的 Redis 目录  
cd redis-6.2.5/  # 编译  
make  # 进入编译好的目录(编译成功后 src 目录下会出现编译后的 Redis 服务程序 redis-server)  
cd src  
 

四、Redis 集群配置
4.1、创建集群相关目录
# 切换目录  
/usr/local/redis  # 创建 Redis 集群目录  
mkdir rediscluster  # 进入 rediscluster 目录  
cd rediscluster  # 批量创建六个文件夹  
mkdir ./node800{1,2,3,4,5,6}  
 

4.2、redis.conf 文件配置
# 进入 redis.conf 所在目录  
cd /usr/local/redis/redis-6.2.5  # 编辑 redis.conf 文件  
vim redis.conf  
 
需要修改的配置内容如下
# 设置端口  
port 8001  #去掉绑定的 ip  
#bind 127.0.0.1  #关闭保护模式  
protected-mode no  # 指定数据文件存放位置,必须要指定不同的目录,不然会丢失数据,默认 dir ./。  
dir /usr/local/redis/rediscluster/node8001  # 开启集群模式  
cluster-enabled yes  # 集群节点配置文件,这里的800x最好和port对应上,redis集群自动创建、自动更新  
cluster-config-file nodes-8001.conf  # 集群超时时间,节点超过这个时间没反应就断定是宕机  
cluster-node-timeout 5000  # 开启AOF持久化  
appendonly yes  # 如果要设置密码,需要增加如下配置:  
# 设置redis访问密码  requirepass 123456  
# 设置集群节点间访问密码,跟上面一致  
masterauth 123456  
 
4.3、拷贝 redis.conf 到集群相关目录
# 进入 redis.conf 目录  
cd /usr/local/redis/redis-6.2.5  # 拷贝 redis.conf 文件到 node800x 相关目录  
cp redis.conf ../rediscluster/node8001  
cp redis.conf ../rediscluster/node8002  
cp redis.conf ../rediscluster/node8003  
cp redis.conf ../rediscluster/node8004  
cp redis.conf ../rediscluster/node8005  
cp redis.conf ../rediscluster/node8006  
 
4.4、将 node8001 ~ node8006 目录下的 redis.conf 文件的端口号一个一个替换

4.5、启动 Redis 集群
# 切换到 redis 的 src 目录  
cd /usr/local/redis/redis-6.2.5/src  # 一个一个启动 redis  
./redis-server ../../rediscluster/node8001/redis.conf  
./redis-server ../../rediscluster/node8002/redis.conf  
./redis-server ../../rediscluster/node8003/redis.conf  
./redis-server ../../rediscluster/node8004/redis.conf  
./redis-server ../../rediscluster/node8005/redis.conf  
./redis-server ../../rediscluster/node8006/redis.conf  # 查看 redis 的启动状态  
ps -ef | grep redis  
 

# 切换到 redis 的 src 目录  
cd /usr/local/redis/redis-6.2.5/src  # 组建 redis 集群(注意,执行下面这个命令的时候,要在一行,不要换行)  
./redis-cli -a 123456 --cluster create 10.211.55.4:8001 10.211.55.4:8002 10.211.55.4:8003 10.211.55.4:8004 10.211.55.4:8005 10.211.55.4:8006 --cluster-replicas 1  
 

五、连接 Redis 集群
5.1、连接方式
使用 Another Redis Desktop Manager 客户端连接集群的方式如下。连接以后就可以和平常一样使用 redis 了。

5.2、集群相关命令
# 假设先在 redis 塞一个 key value 键值对  
set key value  # 查看 key 为 key 的 slot 值  
cluster keyslot key  # 查看slot信息  
cluster slots  # 查看集群相关信息  
cluster info  # 查看集群中节点的相关信息  
cluster nodes  
 
六、故障模拟
正常情况下的集群,杀掉集群中的某个主节点
# 查看 Redis 进程信息  
ps aux | grep redis  # 杀掉 8001 对应的进程 id(-9 后面的是对应的进程 id,ps aux | grep redis 命令展示的第二列)  
kill -9 15913  
 
查看集群节点的信息

杀掉 8005 主节点后的节点信息

重新启动 8005 redis
# 切换到 redis 的 src 目录  
cd /usr/local/redis/redis-6.2.5/src  # 一个一个启动 redis  
./redis-server ../../rediscluster/node8005/redis.conf  
 

七、参考资料
- Linux搭建redis集群
 - Redis 6.0 集群搭建实践
 
八、最后
我是 xiucai,一位后端开发工程师。
如果你对我感兴趣,请移步我的个人博客,进一步了解。
- 文中如有错误,欢迎在评论区指正,如果这篇文章帮到了你,欢迎点赞和关注😊
 - 本文首发于个人博客,未经许可禁止转载💌
