Redis 集群搭建教程

一、介绍

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 集群搭建教程_第1张图片

四、Redis 集群配置

4.1、创建集群相关目录

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

image-20230924113834429

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 文件的端口号一个一个替换

Redis 集群搭建教程_第2张图片

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 集群搭建教程_第3张图片

# 切换到 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 集群搭建教程_第4张图片

五、连接 Redis 集群

5.1、连接方式

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

Redis 集群搭建教程_第5张图片

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  

查看集群节点的信息

Redis 集群搭建教程_第6张图片

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

Redis 集群搭建教程_第7张图片

重新启动 8005 redis

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

Redis 集群搭建教程_第8张图片

七、参考资料

  • Linux搭建redis集群
  • Redis 6.0 集群搭建实践

八、最后

我是 xiucai,一位后端开发工程师。

如果你对我感兴趣,请移步我的个人博客,进一步了解。

- 文中如有错误,欢迎在评论区指正,如果这篇文章帮到了你,欢迎点赞和关注
- 本文首发于个人博客,未经许可禁止转载

你可能感兴趣的:(redis,集群,搭建教程)