1. 首页 > 软件安装教程 > 正文

Redis安装-Redis数据库安装详细过程

Redis

适用环境:RHEL/OEL 7/9 Linux

1. Redis 集群概述

Redis 集群是 Redis 的分布式解决方案,它提供了数据自动分片、高可用性和水平扩展能力。Redis 集群采用主从架构,每个分片有一个主节点和多个从节点。

更多学习教程公众号风哥教程itpux_com 学习交流加群风哥微信: itpux-com 风哥提示:数据库升级过程中请确保备份完整数据,以防意外情况发生。 学习交流加群风哥微信: itpux-com 学习交流加群风哥QQ113257174 学习交流加群风哥微信: itpux-com 更多学习教程公众号风哥教程itpux_com

1.1 Redis 集群的特点

  • 数据自动分片
  • 高可用性
  • 水平扩展
  • 无中心架构

1.2 集群拓扑

推荐的 Redis 集群拓扑为 3 主 3 从,共 6 个节点。

学习交流加群风哥QQ113257174 风哥提示:数据库升级过程中请确保备份完整数据,以防意外情况发生。 更多视频教程www.fgedu.net.cn 风哥提示:数据库升级过程中请确保备份完整数据,以防意外情况发生。 更多视频教程www.fgedu.net.cn 学习交流加群风哥QQ113257174 学习交流加群风哥微信: itpux-com

2. 硬件及系统要求

2.1 硬件要求

  • 每个节点:至少 2 核 CPU,4GB 内存,50GB SSD
  • 网络:千兆网卡,低延迟网络环境

2.2 系统要求

  • 操作系统: RHEL/OEL 7.x 或 9.x
  • 内核版本: 3.10.0-1160.el7.x86_64 或更高
  • 关闭 SElinux 或设置为 permissive 模式
  • 关闭防火墙或开放必要端口

3. 环境准备

3.1 配置主机名和 hosts 文件

# 节点 1
echo "redis-node1" > /etc/hostname
hostnamectl set-hostname redis-node1

# 节点 2
echo "redis-node2" > /etc/hostname
hostnamectl set-hostname redis-node2

# 节点 3
echo "redis-node3" > /etc/hostname
hostnamectl set-hostname redis-node3

# 节点 4
echo "redis-node4" > /etc/hostname
hostnamectl set-hostname redis-node4

# 节点 5
echo "redis-node5" > /etc/hostname
hostnamectl set-hostname redis-node5

# 节点 6
echo "redis-node6" > /etc/hostname
hostnamectl set-hostname redis-node6

# 在所有节点上添加 hosts 条目
cat >> /etc/hosts << EOF
192.168.1.101 redis-node1
192.168.1.102 redis-node2
192.168.1.103 redis-node3
192.168.1.104 redis-node4
192.168.1.105 redis-node5
192.168.1.106 redis-node6
EOF

3.2 关闭防火墙和 SElinux

systemctl stop firewalld
systemctl disable firewalld

setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config

4. Redis 安装

4.1 安装依赖

yum install -y gcc gcc-c++ make wget

4.2 下载 Redis

cd /tmp
wget https://download.redis.io/releases/redis-7.0.12.tar.gz

4.3 解压并编译

tar -zxvf redis-7.0.12.tar.gz
cd redis-7.0.12
make

4.4 安装 Redis

make install PREFIX=/usr/local/redis

4.5 创建配置目录

mkdir -p /etc/redis/cluster

5. 集群配置

5.1 创建节点配置文件

# 节点 1
vi /etc/redis/cluster/redis-7001.conf
port 7001
bind 0.0.0.0
daemonize yes
pidfile /var/run/redis_7001.pid
logfile "/var/log/redis/redis-7001.log"
dir /var/lib/redis/7001
cluster-enabled yes
cluster-config-file nodes-7001.conf
cluster-node-timeout 5000
appendonly yes
requirepass your_secure_password
masterauth your_secure_password

5.2 为其他节点创建配置文件

# 节点 2
cp /etc/redis/cluster/redis-7001.conf /etc/redis/cluster/redis-7002.conf
sed -i 's/7001/7002/g' /etc/redis/cluster/redis-7002.conf

# 节点 3
cp /etc/redis/cluster/redis-7001.conf /etc/redis/cluster/redis-7003.conf
sed -i 's/7001/7003/g' /etc/redis/cluster/redis-7003.conf

# 节点 4
cp /etc/redis/cluster/redis-7001.conf /etc/redis/cluster/redis-7004.conf
sed -i 's/7001/7004/g' /etc/redis/cluster/redis-7004.conf

# 节点 5
cp /etc/redis/cluster/redis-7001.conf /etc/redis/cluster/redis-7005.conf
sed -i 's/7001/7005/g' /etc/redis/cluster/redis-7005.conf

# 节点 6
cp /etc/redis/cluster/redis-7001.conf /etc/redis/cluster/redis-7006.conf
sed -i 's/7001/7006/g' /etc/redis/cluster/redis-7006.conf

5.3 创建数据目录

mkdir -p /var/lib/redis/{7001,7002,7003,7004,7005,7006}
mkdir -p /var/log/redis
chown -R redis:redis /var/lib/redis
chown -R redis:redis /var/log/redis

5.4 启动所有节点

/usr/local/redis/bin/redis-server /etc/redis/cluster/redis-7001.conf
/usr/local/redis/bin/redis-server /etc/redis/cluster/redis-7002.conf
/usr/local/redis/bin/redis-server /etc/redis/cluster/redis-7003.conf
/usr/local/redis/bin/redis-server /etc/redis/cluster/redis-7004.conf
/usr/local/redis/bin/redis-server /etc/redis/cluster/redis-7005.conf
/usr/local/redis/bin/redis-server /etc/redis/cluster/redis-7006.conf

5.5 创建集群

/usr/local/redis/bin/redis-cli --cluster create \
192.168.1.101:7001 \
192.168.1.102:7002 \
192.168.1.103:7003 \
192.168.1.104:7004 \
192.168.1.105:7005 \
192.168.1.106:7006 \
--cluster-replicas 1 \
-a your_secure_password

6. 集群验证

6.1 检查集群状态

/usr/local/redis/bin/redis-cli -c -p 7001 -a your_secure_password cluster info

6.2 检查节点状态

/usr/local/redis/bin/redis-cli -c -p 7001 -a your_secure_password cluster nodes

6.3 测试数据同步

/usr/local/redis/bin/redis-cli -c -p 7001 -a your_secure_password set test_key "Hello Redis Cluster"
/usr/local/redis/bin/redis-cli -c -p 7002 -a your_secure_password get test_key
/usr/local/redis/bin/redis-cli -c -p 7003 -a your_secure_password get test_key

6.4 测试故障转移

# 停止一个主节点
pkill -f redis-server.*7001

# 检查集群状态
/usr/local/redis/bin/redis-cli -c -p 7002 -a your_secure_password cluster nodes

# 重启节点
/usr/local/redis/bin/redis-server /etc/redis/cluster/redis-7001.conf

# 检查集群状态
/usr/local/redis/bin/redis-cli -c -p 7001 -a your_secure_password cluster nodes

7. 性能优化

7.1 操作系统参数优化

vi /etc/sysctl.conf
# 内存参数
vm.overcommit_memory = 1

# 网络参数
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_tw_reuse = 1
sysctl -p

7.2 Redis 集群参数优化

vi /etc/redis/cluster/redis-7001.conf
# 最大内存
maxmemory 4gb

# 内存策略
maxmemory-policy allkeys-lru

# 持久化策略
appendonly no
# 或使用 RDB 持久化
save 900 1
save 300 10
save 60 10000

# 客户端连接
maxclients 10000

# 超时时间
timeout 0
# 复制配置到其他节点
for port in 7002 7003 7004 7005 7006; do
  cp /etc/redis/cluster/redis-7001.conf /etc/redis/cluster/redis-${port}.conf
  sed -i "s/7001/${port}/g" /etc/redis/cluster/redis-${port}.conf
done

# 重启所有节点
for port in 7001 7002 7003 7004 7005 7006; do
  pkill -f redis-server.*${port}
  /usr/local/redis/bin/redis-server /etc/redis/cluster/redis-${port}.conf
done

8. 故障排查

8.1 常见问题及解决方法

8.1.1 集群创建失败

# 检查节点状态
ps aux | grep redis-server

# 检查端口是否被占用
netstat -tuln | grep 700

# 检查日志
cat /var/log/redis/redis-7001.log

8.1.2 节点无法加入集群

# 检查网络连接
telnet redis-node1 7001

# 检查防火墙
firewall-cmd --list-ports

# 检查配置文件
vi /etc/redis/cluster/redis-7001.conf

8.1.3 故障转移失败

# 检查集群状态
/usr/local/redis/bin/redis-cli -c -p 7001 -a your_secure_password cluster nodes

# 检查日志
cat /var/log/redis/redis-7001.log

# 手动触发故障转移
/usr/local/redis/bin/redis-cli -c -p 7004 -a your_secure_password cluster failover

8.1.4 内存不足

# 检查内存使用情况
free -h

# 调整最大内存
vi /etc/redis/cluster/redis-7001.conf
maxmemory 2gb

# 重启节点
pkill -f redis-server.*7001
/usr/local/redis/bin/redis-server /etc/redis/cluster/redis-7001.conf
警告:本指南仅供参考,实际部署时请根据具体环境进行调整。在生产环境中,建议进行充分的测试和监控。

提示:定期监控 Redis 集群的运行状态,确保所有节点正常运行,数据同步良好。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息