Redis-Cluster集群构建
本实验需要四台虚拟机,当服务器不够我们每台虚拟机上开两个端口
1号虚拟机配置python
2-4号虚拟机配置redis集群
其中2号虚拟机需要双网卡,其中一张网卡能够上网,需要下载依赖软件
实验流程
一、主机规划
主机 | 内网 IP 地址 | 端口 | 用途 |
---|---|---|---|
centos1.com | 192.168.24.20 | 6378/6379 | 存储数据/主节点备份 |
centos2.com | 192.168.24.30 | 6378/6379 | 存储数据/主节点备份 |
centos3.com | 192.168.24.40 | 6378/6379 | 存储数据/主节点备份 |
二、部署 Redis
# 下载 redis
$ wget http://download.redis.io/releases/redis-3.2.12.tar.gz
# 解压并进入 src 目录
$ tar xf redis-3.2.12.tar.gz
$ cd redis-3.2.12
$ make && make PREFIX=/usr/local/redis install
redis-server:Redis 服务端的启动程序
redis-cli:Redis 客户端程序,也可以用 telnet 根据其纯文本协议来操作Redis缓存
redis-benchmark:Redis 性能测试工具,测试 Redis 在当前系统下的读写性能
redis-check-aof:数据修复
redis-check-dump:检查导出工具
三、启动前优化内存分配策略
$ echo ‘vm.overcommit_memory=1’ >>/etc/sysctl.conf && sysctl -p
# Overcommit_Memory 参数可选值含义:
# 0 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程
# 1 表示内核允许分配所有的物理内存,而不管当前的内存状态如何
# 2 表示内核允许分配超过所有物理内存和交换空间总和的内存
四、构建 Redis-Cluster 集群
Redis Cluster 集群正常工作至少需要 3 个主节点,同时为了保证数据的高可用性,加入了主从模式。因此至少创建 6 个节点,一个主节点对应一个或多个从节点,主节点提供数据存取,从节点默认情况下只负责从 Master 拉取数据进行备份。当这个主节点挂掉后,集群就会通过下线检测的方式,由从节点中选举一个节点来充当主节点,实现故障转移,从而保证集群正常运行
1、创建存放多个实例的目录
# 以单台主机为例,创建存放多个实例的目录
$ mkdir -p /data/{6378,6379}
2、配置redis.conf文件
# 配置 6378 端口实例
$ vim redis.conf
port 6378
daemonize yes
pidfile /data/6378/redis.pid
logfile /data/6378/redis.log
loglevel notice
dir /data/6378
dbfilename dump.rdb
#禁用保护模式(避免影响主从复制)
protected-mode no
#开启cluster模式
cluster-enabled yes
#记录集群信息,cluster集群自动维护,不用手动更新、创建
cluster-config-file nodes.conf
#节点超时时间,目标节点超过指定时间没响应,就标记为FAIL或PFAIL(可能宕机)
cluster-node-timeout 5000
appendonly yes
bind 0.0.0.0
# 拷贝 Redis 配置文件,修改得到 6379 实例
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rPtjrgvE-1607589917843)(file:///C:\Users\LN\AppData\Local\Temp\ksohtml11348\wps5.jpg)]