redis 单台服务集群搭建

Redis6.0.6安装

参考
https://blog.youkuaiyun.com/codeSmart/article/details/113365680

创建目录文件

mkdir cluster_redis
mkdir 12000
mkdir 13000
mkdir 14000
mkdir 15000
mkdir 16000
mkdir 17000
每个12000、13000等目录下再创建
mkdir data
mkdir logs
mkdir pid

创建 cluster_conf

mkdir cluster_conf
cp redis.conf cluster_conf/redis12000.conf

修改redis12000.conf

bind 10.2.2.171 127.0.0.1
daemonize yes #守护进程开启
protected-mode no                   #关闭保护模式(如果开启,需要设置密码,比较繁琐。如有需要可以按照自己的需求配置)
port 7000 #设置启动端口
cluster-require-full-coverage no #当主节点故障时只影响它负责槽的相关命令执行,不会影响其他主节点的可用性。
cluster-enabled yes #允许集群启动
cluster-config-file nodes_12000.conf #集群配置文件名
cluster-node-timeout 5000 #集群节点之间多少毫秒无法连接后判定节点挂掉
pidfile /data/chengql/cluster_redis/12000/pid/redis12000.pid #修改pid文件创建位置
logfile /data/chengql/cluster_redis/12000/logs/redis12000.log #修改日志文件存储位置
dir /data/chengql/cluster_redis/12000/data/ #修改数据文件存储位置

redis13000.conf
redis14000.conf
redis15000.conf
redis16000.conf
redis17000.conf
进行同redis12000.conf 修改

启动服务

[root@centos7 redis-6.0.6]# ./src/redis-server cluster_conf/redis12000.conf 
[root@centos7 redis-6.0.6]# ./src/redis-server cluster_conf/redis13000.conf 
[root@centos7 redis-6.0.6]# ./src/redis-server cluster_conf/redis14000.conf 
[root@centos7 redis-6.0.6]# ./src/redis-server cluster_conf/redis15000.conf 
[root@centos7 redis-6.0.6]# ./src/redis-server cluster_conf/redis16000.conf 
[root@centos7 redis-6.0.6]# ./src/redis-server cluster_conf/redis17000.conf 

创建集群

[root@centos7 redis-6.0.6]#  ./src/redis-cli --cluster create 10.2.2.171:12000   10.2.2.171:13000  10.2.2.171:14000  10.2.2.171:15000  10.2.2.171:16000  10.2.2.171:17000  --cluster-replicas 1

在这里插入图片描述

其它参数解释:
–cluster-replicas 1:表示希望为集群中的每个主节点创建一个从节点(一主一从)。
–cluster-replicas 2:表示希望为集群中的每个主节点创建两个从节点(一主二从)。

也就是说,当前的脚本,将启动3主3从的节点。

查看所有节点状态

在这里插入图片描述

### 服务器上的 Redis 哨兵模式集群搭建教程 在服务器上设置 Redis 集群并启用 Sentinel 模式可以实现高可用性和自动故障转移功能。以下是详细的配置方法: #### 1. 安装 Redis 和依赖项 确保已安装最新版本的 Redis 及其所需工具集。如果需要使用 `redis-trib` 工具,则需额外安装 Ruby 环境。 ```bash sudo apt update && sudo apt install redis-server ruby-full build-essential ``` 此命令会安装 Redis Server 和 Ruby 开发环境,以便运行 `redis-trib.rb` 脚本[^2]。 #### 2. 启动多个 Redis 实例 为了模拟多节点集群,在同一机器上启动多个 Redis 实例。假设我们创建三个实例分别监听端口 7000、7001 和 7002。 编辑每个实例的配置文件 `/etc/redis/7000.conf`, `/etc/redis/7001.conf`, `/etc/redis/7002.conf` 并修改如下参数: ```conf port 7000 # 修改为对应端口号 cluster-enabled yes cluster-config-file nodes-7000.conf # 对应于各端口的配置文件名 appendonly yes # 开启持久化选项 daemonize yes # 设置后运行 dir /var/lib/redis/7000 # 数据存储路径 bind 0.0.0.0 # 绑定到所有网络接口 ``` 重复上述操作以生成其他两个配置文件 (替换相应端口号和目录)。 启动这些服务: ```bash redis-server /etc/redis/7000.conf redis-server /etc/redis/7001.conf redis-server /etc/redis/7002.conf ``` #### 3. 创建 Redis 集群 利用官方提供的脚本 `redis-trib.rb` 来初始化新集群结构。 下载该脚本至本地工作区或者通过源码编译获取它之后执行下面指令来建立初始拓扑关系: ```bash ./redis-trib.rb create --replicas 1 \ localhost:7000 localhost:7001 localhost:7002 ``` 这里指定副本数量为一(`--replicas 1`)意味着每主节点都会有一个从属备份节点. #### 4. 配置 Redis Sentinel Sentinel 是用于监控 Redis 主从架构健康状况以及处理失败情况下的自动化解决方案的一部分。尽管 Redis Cluster 自身具备部分此类能力[^1],但在某些场景下仍可能希望独立部署 Sentinels 提供增强支持. 创建一个新的 sentinel 配置模板比如命名为 `sentinel.conf` ,内容大致如下所示: ```ini port 26379 ; 设定哨兵进程侦听端口 daemonize yes ; 让守护线程保持活跃状态 logfile "/var/log/sentinel.log" pidfile "/var/run/redis-sentinel.pid" # Master 监控定义 sentinel monitor mymaster 127.0.0.1 7000 2 ; 名字为主机地址加端口形式; quorum 数量表示多少个哨兵同意判定失联才算正式失效. sentinel down-after-milliseconds mymaster 5000 ; 如果超过五秒未收到回复则认为不可达 sentinel failover-timeout mymaster 60000 ; 整体切换超时时间设为六十秒钟 sentinel parallel-syncs mymaster 1 ; 控制一次最多允许同步几个slave避免负载过高 ``` 接着开启 Sentinel 运行程序: ```bash redis-sentinel /path/to/sentinel.conf ``` 完成以上步骤即可成功构建基于一物理主机却拥有冗余保护特性的分布式缓存系统! --- ### 注意事项 虽然可以在一设备内部署完整的集群方案,但这仅适用于测试目的而非生产环境中推荐的做法。因为硬件资源争抢可能导致性能下降甚至不稳定现象发生。对于实际应用而言还是建议采用真正分离式的多计算元组合方式提升整体可靠性水平。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值