Linux环境下Redis集群搭建详细教程,0门槛有手就会

Linux环境下Redis集群搭建详细教程,0门槛有手就会 文章目录一、下载Redis二、创建Redis管理用户三、上传Redis四、安装Redis五、搭建集群1. 创建集群配置目录redis-cluster/2. 创建master 1节点目录7001复制redis.conf配置文件3. 配置marst 1主节点70014. 配置slave 1从节点70025. 配置剩余集群节点6. 启动集群所有节点7. 创建集群8. 验证集群9. 查看集群信息10. 关闭集群11. 删除节点12. 查看客户端连接情况一、下载Redis官方链接https://redis.io/downloads/这里我选择下载了市场使用比较广泛成熟的6.2版本最新的6.2.14。二、创建Redis管理用户创建redisadm用户作为Redis的运维用户。$mkdir-p/home/redisadm $groupadd-g60010redisgrp $useraddredisadm-u60010-d/home/redisadm-gredisgrp $chown-Rredisadm:redisgrp /home/redisadm $echoredisadm:redisadm|chpasswd三、上传Redis将Redis安装包上传到linux服务器并解压可以通过FTP工具连接上传这里我上传到了/home/redisadm目录下进行安装。使用root用户进行解压缩执行命令$cd/home/redisadm $tar-zxvfredis-6.2.14.tar.gz四、安装Redis注意使用root用户安装。进入刚才的Redis解压缩路径操作我这边是/home/redisadm/redis-6.2.14进行编译执行命令$make安装环境检查执行命令:注意这一步不能报错如果报错了需要检查确实什么插件将插件安装好。$maketest安装执行命令$makeinstall安装成功后我们可以看到Redis相关命令已经加到/usr/local/bin目录下了。五、搭建集群本次我们搭建的Redis集群设计为3台服务器包含3主3从共6个Redis节点每个服务器包含1主1从2个Redis节点分别为master 1、slave1master 2、slave 2master 3、slave 3。集群架构如下图接下来的集群配置时我们可以切换成redisadm用户操作了。1. 创建集群配置目录redis-cluster/$cd/home/redisadm $mkdir-p/home/redisadm/redis-cluster $ ll2. 创建master 1节点目录7001复制redis.conf配置文件$cd/home/redisadm/redis-cluster $mkdir7001$ ll $cp../redis-6.2.14/redis.conf /home/redisadm/redis-cluster/7001/redis.conf $cd7001$ ll3. 配置marst 1主节点7001主节点7001的配置文件redis.conf修改内容部分参数阈值可自行调大或减小注释去掉绑定监听的IP地址#bind 127.0.0.1 -::1关闭本地ip访问安全权限限制开启远程访问权限protected-mode no设置节点监听端口port 7001设置空闲连接断开时间单位stimeout 30设置TCP保持活跃时间tcp-keepalive 30开启守护进程redis进程以后台形式启动daemonize yes配置不启用任何特定的进程管理监督机制supervised no配置指定pid记录文件pidfile /home/redisadm/redis-cluster/7001/redis_7001.pid配置日志输出级别loglevel verbose配置日志输出文件logfile /home/redisadm/redis-cluster/7001/redis.log配置logo显示在启动或运行时会在控制台/界面中显示Logo或版本信息always-show-logo yes配置禁用 Redis 的 RDB快照持久化功能save 配置快照失败处理策略当 Redis 执行 BGSAVE 命令生成 RDB 快照失败时不停止处理写请求即忽略错误并继续接受数据写入stop-writes-on-bgsave-error no配置数据文件存放位置必须要指定不同的目录位置不然会丢失数据dir /home/redisadm/redis-cluster/7001/设置集群节点间访问密码与Redis密码一致masterauth redisadm配置主从复制RDB文件加载模式从库Slave在加载主库Master发送的 RDB 快照文件时禁用“无盘加载”Diskless Load模式即采用传统的“基于磁盘”的加载方式repl-diskless-load disabled设置 Redis 访问密码requirepass redisadm设置启动 AOF 持久化机制appendonly yes设置 AOF 持久化参数当 Redis 执行 AOF 文件重写BGREWRITEAOF时暂停执行 fsync 操作以避免因频繁同步磁盘而阻塞主进程从而提升性能no-appendfsync-on-rewrite yes设置启动集群模式cluster-enabled yes设置集群节点信息文件cluster-config-file nodes-7001.conf设置集群节点心跳检测的超时时间单位mscluster-node-timeout 5000设置集群节点槽位覆盖参数当 Redis Cluster 中存在未分配的槽位Slot时集群将拒绝所有写请求以确保数据一致性和完整性cluster-require-full-coverage yes设置慢查询日志保留条数用于分析性能瓶颈和调试问题slowlog-max-len 5004. 配置slave 1从节点7002创建7002目录从7001目录下复制redis.conf配置文件$cd/home/redisadm/redis-cluster/ $mkdir7002$ ll $cp./7001/redis.conf ./7002/redis.conf $cd7002$ ll修改7002目录下redis.conf配置文件将文件内7001替换为7002主要涉及以下参数port 7002 logfile /home/redisadm/redis-cluster/7001/redis.log pidfile /home/redisadm/redis-cluster/7001/redis_7001.pid dir /home/redisadm/redis-cluster/7001/ cluster-config-file nodes-7001.conf5. 配置剩余集群节点配置方法与7002一致替换文件内端口信息。配置文件复制因为我这些是在同一个机器上所以只需要使用cp命令复制到对应的节点文件夹内修改配置文件就行。$cp/home/redisadm/redis-cluster/7001/redis.conf /home/redisadm/redis-cluster/7003/redis.conf $cp/home/redisadm/redis-cluster/7001/redis.conf /home/redisadm/redis-cluster/7004/redis.conf $cp/home/redisadm/redis-cluster/7001/redis.conf /home/redisadm/redis-cluster/7005/redis.conf $cp/home/redisadm/redis-cluster/7001/redis.conf /home/redisadm/redis-cluster/7006/redis.conf但是如果有多台机器的时候就需要使用scp拷贝过去了$scp/home/redisadm/redis-cluster/7001/redis.conf redisadmxxx.xxx.xxx.xxx:/home/redisadm/redis-cluster/7003/redis.conf $scp/home/redisadm/redis-cluster/7001/redis.conf redisadmxxx.xxx.xxx.xxx:/home/redisadm/redis-cluster/7004/redis.conf $scp/home/redisadm/redis-cluster/7001/redis.conf redisadmxxx.xxx.xxx.xxx:/home/redisadm/redis-cluster/7005/redis.conf $scp/home/redisadm/redis-cluster/7001/redis.conf redisadmxxx.xxx.xxx.xxx:/home/redisadm/redis-cluster/7006/redis.conf创建AOF持久化路径因为是在不同服务器上所以我们要自己手动创建集群内其他节点的AOF持久化文件目录。比如在服务器1上有2个节点master 1 7001 slave 17002那我们就创建其余集群节点点目录$mkdir-p/home/redisadm/redis-cluster/7003/ $mkdir-p/home/redisadm/redis-cluster/7004/ $mkdir-p/home/redisadm/redis-cluster/7005/ $mkdir-p/home/redisadm/redis-cluster/7006/6. 启动集群所有节点执行启动命令注意使用redisadm用户启动不然后面创建集群会报错。$cd/home/redisadm/redis-6.2.14/src $ redis-server /home/redisadm/redis-cluster/7001/redis.conf $ redis-server /home/redisadm/redis-cluster/7002/redis.conf $ redis-server /home/redisadm/redis-cluster/7003/redis.conf $ redis-server /home/redisadm/redis-cluster/7004/redis.conf $ redis-server /home/redisadm/redis-cluster/7005/redis.conf $ redis-server /home/redisadm/redis-cluster/7006/redis.conf检查启动是否成功可以看到全部端口启动好并且后面是[cluster]$ps-ef|grepredisadm7. 创建集群创建集群使用create创建cluster-replicas指定从节点个数前3个节点为master后3个为则从节点。需要加上redis.conf内设置的密码redisadm不然会报错。$ /home/redisadm/redis-6.2.14/src/redis-cli--clustercreate --cluster-replicas1127.0.0.1:7001127.0.0.1:7003127.0.0.1:7005127.0.0.1:7002127.0.0.1:7004127.0.0.1:7006-aredisadm8. 验证集群连接任意一个节点测试这里使用7001端口试试。$ /home/redisadm/redis-6.2.14/src/redis-cli-c-h127.0.0.1-p7001-aredisadm去7001端口对应的从节点查询自动跳转到了7001主节点$ /home/redisadm/redis-6.2.14/src/redis-cli-c-h127.0.0.1-p7002-aredisadm换一个主节点7003查询自动跳转到了7001主节点$ /home/redisadm/redis-6.2.14/src/redis-cli-c-h127.0.0.1-p7003-aredisadm9. 查看集群信息查看集群信息:$ /home/redisadm/redis-6.2.14/src/redis-cli-c-h127.0.0.1-p7001-aredisadm $ cluster info查看集群节点:$ cluster nodes10. 关闭集群$ /home/redisadm/redis-6.2.14/src/redis-cli-h127.0.0.1-p7001-aredisadmshutdown$ /home/redisadm/redis-6.2.14/src/redis-cli-h127.0.0.1-p7002-aredisadmshutdown$ /home/redisadm/redis-6.2.14/src/redis-cli-h127.0.0.1-p7003-aredisadmshutdown$ /home/redisadm/redis-6.2.14/src/redis-cli-h127.0.0.1-p7004-aredisadmshutdown$ /home/redisadm/redis-6.2.14/src/redis-cli-h127.0.0.1-p7005-aredisadmshutdown$ /home/redisadm/redis-6.2.14/src/redis-cli-h127.0.0.1-p7006-aredisadmshutdown11. 删除节点$ /home/redisadm/redis-6.2.14/src/redis-cli--clusterdel-node127.0.0.1:7002 9ee2e5b61994f18b49d4da84ada22a75225af2fe12. 查看客户端连接情况查询redis连接情况和最大连接数。$ info clients $ config get maxclients