centos7安装redis-cluster集群

一、什么是Redis ?

Redis是一个开源的、使用ANSI C语言编写的、支持网络交互的、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它支持存储的value类型包括string(字符串)、list(链表)、set(集合)和zset(有序集合)等。作为一个高速缓存数据库,Redis以键值对的形式存储数据,是一种非关系型数据库。

官方下载链接:Download | Redis

二、为什么要用Redis ?

Redis之所以被广泛使用,主要归因于它具备的一系列显著优势,这些优势使得Redis在处理高并发、大数据量等复杂场景时表现出色。以下是使用Redis的主要原因:

  1. 高性能:Redis是基于内存存储的数据库,数据的读写操作直接在内存中完成,因此其性能远高于传统的硬盘存储数据库。在高并发环境下,Redis能够迅速响应大量的请求,满足实时性要求较高的应用需求。
  2. 数据类型丰富:Redis支持多种数据类型,如字符串、哈希、列表、集合和有序集合等。这些丰富的数据类型使得Redis能够灵活地满足各种业务场景的需求,无需进行复杂的数据转换或处理。
  3. 高并发处理能力:在大并发场景下,直接访问数据库可能会导致连接异常或性能下降。而Redis可以作为缓存层,先接收并处理这些请求,减轻数据库的压力,提高系统的并发处理能力。
  4. 持久化保证数据安全性:虽然Redis主要基于内存存储,但它也提供了持久化机制,如RDB和AOF,以确保在意外情况下数据的安全性。这使得Redis在提供高性能的同时,也能保证数据的可靠性。
  5. 分布式集群化扩展性高:Redis支持分布式集群化部署,可以轻松实现水平扩展,以满足不断增长的数据存储和访问需求。同时,Redis的集群设计也保证了其稳定性和高可用性。
  6. 丰富的API支持:Redis提供了丰富的API接口,使得开发者能够方便地进行各种查询和存储操作,降低了开发难度和成本。

综上所述,Redis的高性能、丰富的数据类型、高并发处理能力、数据安全性、分布式集群化扩展性以及丰富的API支持等特点,使得它在处理大规模数据、高并发请求等复杂场景时具有显著优势,因此被广泛应用于各种业务场景中。

三、Redis 部署高可用架构最佳实践

部署Redis高可用架构的最佳实践主要涉及到如何确保Redis服务的稳定性、可扩展性和容错性。以下是一些关键的步骤和考虑因素:

  1. 主从复制:这是实现Redis高可用性的基础。主节点负责处理写操作和响应读操作,而从节点则复制主节点的数据,并在主节点不可用时提供读取服务。通过配置主从复制,你可以确保数据的冗余和备份,从而提高系统的容错能力。
  2. 哨兵模式:哨兵模式用于监控Redis主节点的状态。当主节点出现故障时,哨兵会自动进行故障转移,选择一个从节点提升为主节点,并将其他从节点切换到新的主节点上。这确保了服务的连续性,避免了单点故障的问题。
  3. 集群化部署:通过集群化部署,你可以将Redis节点分散到多个物理机或虚拟机上,从而提高系统的可扩展性和容错性。Redis Cluster是实现集群化部署的常用方案,它支持自动分片、在线扩容和故障转移等功能。
  4. 持久化配置:为了确保数据的安全性,你需要配置Redis的持久化机制。常用的持久化方式包括RDB和AOF。RDB通过定期生成快照来保存数据,而AOF则记录所有对数据的修改操作。你可以根据实际需求选择合适的持久化策略。
  5. 网络优化:Redis的性能很大程度上取决于网络的稳定性和带宽。因此,你需要确保Redis节点之间的网络连接稳定可靠,并考虑使用负载均衡和代理等技术来优化网络性能。
  6. 监控与告警:部署监控系统来实时跟踪Redis节点的运行状态和性能指标,如内存使用、连接数、响应时间等。同时,配置告警机制,以便在出现故障或性能问题时能够及时得到通知并进行处理。
  7. 安全性考虑:确保Redis服务的安全性也至关重要。你需要限制对Redis节点的访问权限,使用强密码进行身份验证,并定期更新和修补安全漏洞。

通过遵循以上最佳实践,你可以构建一个稳定、可靠且高效的Redis高可用架构,从而满足各种业务场景的需求。但请注意,具体的实践方式可能因你的业务需求和系统环境而有所不同,因此在实际部署时需要根据实际情况进行调整和优化。

四、集群化部署步骤

# 1、准备6台机器
10.1.42.56
10.1.42.57
10.1.42.58
10.1.42.59
10.1.42.60
10.1.42.61

#2、关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

#3、下载redis安装包到/usr/local/src  (我是安装的redis6版本以上) 
wget https://download.redis.io/releases/redis-6.2.1.tar.gz

#4、安装gcc依赖

#因为使用的是6版本以上,需要安装gcc5以上版本可以二进制安装或者yum安装
源码包 下载地址 https://ftp.gnu.org/gnu/gcc/

以下是yum安装方法
yum -y install gcc tcl
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
gcc -v 查看版本
版本是根据 9来决定的 你要下载其他版本 可以把9 改成 7或者8 

如果版本没有变化,执行 echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile

在进行查看 gcc -v

#5、安装redis
#解压
tar -xvf redis-6.2.1.tar.gz -C /usr/local
cd redis-6.2.1
make MALLOC=libc
make install PROFIX=/mnt/lakecloud/server/redis-6.2.1

# 配置
mkdir -p /mnt/db/redis-6.2.1/
# 56
cat /mnt/lakecloud/server/redis-6.2.1/6379.conf
bind 10.1.42.56
port 6379
daemonize yes
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
cluster-require-full-coverage no
appendonly yes

dir /mnt/db/redis-6.2.1
requirepass UoWoAMC!Qx
masterauth UoWoAMC!Qx

pidfile /mnt/db/redis-6.2.1/redis_6379.pid
logfile /mnt/db/redis-6.2.1/logs/redis_6379.log

# 57
cat /mnt/lakecloud/server/redis-6.2.1/6379.conf
bind 10.1.42.57
port 6379
daemonize yes
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
cluster-require-full-coverage no
appendonly yes

dir /mnt/db/redis-6.2.1
requirepass UoWoAMC!Qx
masterauth UoWoAMC!Qx

pidfile /mnt/db/redis-6.2.1/redis_6379.pid
logfile /mnt/db/redis-6.2.1/logs/redis_6379.log

#58-61略过
...

#56-61
[root@es01 redis-6.2.1]# cat /usr/lib/systemd/system/redis.service
[Unit]
Description=The redis-cluster-server-6379 Process Manager
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/mnt/lakecloud/server/redis-6.2.1/bin/redis-server /mnt/lakecloud/server/redis-6.2.1/6379.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

#以上节点完成后,开始组建集群
./redis-cli --cluster create 10.1.42.56:6379 10.1.42.57:6379 10.1.42.58:6379 10.1.42.59:6379 10.1.42.60:6379 10.1.42.61:6379 --cluster-replicas 1
# --cluster-replicas 1 希望每个服务器都有一主一从

./redis-cli -c -h 10.1.42.56 -p 6379
AUTH UoWoAMC!Qx
CLUSTER NODES

#加入开机自启
systemctl enable redis.service
systemctl enable redis.service


  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值