暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Redis部署

原创 soul0202 2023-09-11
240

一、项目背景

使用了6节点redis作为缓存数据库。Redis版本Redis server 5。

系统部署架构图:


二、Redis模式介绍

2.1 主从模式

  1. 主从模式是最为简单的redis集群模式
  2. 主要工作模式是主从复制。主数据库可以执行读写功能,而从数据库只能执行读功能。主数据库数据发生变化,会自动同步到从数据库。
  3. 主数据库为master,从数据库为slave,一个master可以有多个slave,一个slave只能有一个master,slave挂了,重新启动会从master同步数据 master挂了,服务器只能进行读功能,不能执行写功能,直到master重新启动同步数据后,才能提供写服务。

2.2 哨兵模式

  1. 可以解决主从模式的弊端:master挂掉之后不能提供写功能。
  2. 哨兵模式是建立在主从模式的
  3. 当master挂掉之后,会自动从slave中选一个作为master。若master重新启动,master则会转化为现有的master下的一个slave
  4. 当slave切换时,会通过发布订阅方式,将slave所对应的master更改
  5. 因为哨兵也是一个进程,所以也有挂掉的可能,需要配置多个哨兵互相监督。一个哨兵可以监督多个主从数据库。同样,一个主从数据库可以被多个哨兵监督。

2.3 集群Cluster模式

  1. redis cluster是Redis的分布式解决方案,在3.0版本推出后有效地解决了redis分布式方面的需求,自动将数据进行分片,每个master上放一部分数据提供内置的高可用支持,部分master不可用时,还是可以继续工作的
  2. 支撑N个redis master node,每个master node都可以挂载多个slave node
  3. 高可用,因为每个master都有salve节点,那么如果mater挂掉,redis cluster这套机制,就会自动将某个slave切换成master

三、服务器规划

IP地址

主机名

redis版本

角色

192.168.1.10

redis-01

5

slave

192.168.1.11

redis-02

5

slave

192.168.1.12

redis-03

5

master

192.168.1.13

redis-04

5

slave

192.168.1.14

redis-05

5

master

192.168.1.15

redis-06

5

master

四、redis安装

4.1 系统配置

1. 系统版本

[root@redis-01 ~]# cat /etc/redhat-release

CentOS Linux release 7.6.1810 (Core)

1. 修改内核参数

[root@redis-02 ~]#  more /etc/sysctl.conf

#add

net.ipv4.tcp_max_tw_buckets = 5000

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_max_syn_backlog = 1024

net.ipv4.tcp_synack_retries = 2

fs.file-max = 65535000

fs.nr_open = 65535000

 

[root@redis-02 ~]# more /etc/security/limits.conf

root soft nofile 6553500

root hard nofile 6553500

 

[root@redis-02 ~]# more /etc/security/limits.d/20-nproc.conf

# Default limit for number of user's processes to prevent

# accidental fork bombs.

# See rhbz #432903 for reasoning.

 

*          soft    nproc     4096000

root       soft    nproc     unlimited

 

 

##生效

sysctl -p

1. 关闭SELinux

# 关闭selinux

sudo vi /etc/selinux/config

修改

SELINUX=disabled

服务器需要重启 reboot

1. 关闭防火墙

# 查看防火墙状态

firewall-cmd --state

#停止防火墙

systemctl stop firewalld.service

# 开机禁用防火墙

systemctl disable firewalld.service

1. 编辑yum源

[root@redis-01 ~]# cd /etc/yum.repos.d/

[root@redis-01 yum.repos.d]# more epel.repo

[epel]

name=Extra Packages for Enterprise Linux 7 - $basearch

baseurl=https://repo.huaweicloud.com/epel/7/$basearch

#metalink=https://mirrors.fedoraproject.org/#metalink?repo=epel-7&arch=$basearch

failovermethod=priority

enabled=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

 

[epel-debuginfo]

name=Extra Packages for Enterprise Linux 7 - $basearch - Debug

baseurl=https://repo.huaweicloud.com/epel/7/$basearch/debug

#metalink=https://mirrors.fedoraproject.org/#metalink?repo=epel-debug-7&arch=$basearch

failovermethod=priority

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

gpgcheck=1

 

[epel-source]

name=Extra Packages for Enterprise Linux 7 - $basearch - Source

baseurl=https://repo.huaweicloud.com/epel/7/SRPMS

#metalink=https://mirrors.fedoraproject.org/#metalink?repo=epel-source-7&arch=$basearch

failovermethod=priority

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

gpgcheck=1

4.2 软件下载

wget  http://download.redis.io/releases/redis-5.0.9.tar.gz

4.3 安装redis

yum -y install redis

tar -zxf redis-5.0.9.tar.gz

cd redis-5.0.9

make

cp redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli        redis-sentinel   redis-server      /usr/bin/

#cp src/redis-* /usr/bin/

 

4.4 编辑redis.conf

#所有节点一直

vim /etc/redis.conf

bind 0.0.0.0

protected-mode no

databases 32

save ""

stop-writes-on-bgsave-error no

requirepass gdCMo6gv7tXOrzvX

masterauth gdCMo6gv7tXOrzvX

cluster-enabled yes

cluster-config-file nodes-6379.conf

maxmemory "8g"

cluster-migration-barrier 1

cluster-node-timeout 8

cluster-slave-validity-factor 0

cluster-require-full-coverage no

maxclients 1024000

4.5 服务启动

systemctl enable redis

systemctl start redis

 

五、Redis集群配置

5.1 Cluster创建

#选项–replicas 0 表示先为集群创建不含slaver 的集群  1表示1主1从集群

redis-cli --cluster create 192.168.1.10:6379 192.168.1.11:6379 192.168.1.12:6379 192.168.1.13:6379 192.168.1.14:6379 192.168.1.15:6379 --cluster-replicas 1

 

5.2 主从关系

[root@redis-02 redis]# more nodes-6379.conf

c055fd4f362398ee630a18a0a2759f00ca253667 192.168.1.11:6379@16379 myself,slave 1021343f15f5e113dbeb128ac3a57b224209b4cb 0 1679286965000 2 connected

e8c92f0b567cd40f5a4bc4702c7962091a2eef18 192.168.1.13:6379@16379 slave 55c91becc8c7c95fd2afe8ae0e58b2f989e28bd5 0 1679286965908 4 connected

1021343f15f5e113dbeb128ac3a57b224209b4cb 192.168.1.15:6379@16379 master - 0 1679286965908 7 connected 5461-10922

55c91becc8c7c95fd2afe8ae0e58b2f989e28bd5 192.168.1.12:6379@16379 master - 0 1679286965908 3 connected 10923-16383

468c715cf4cb38945a021f9622d248c4a0fc59af 192.168.1.10:6379@16379 slave 071e99e97581d0903491ee3ee3bb13fc16b4d87e 0 1679286965908 8 connected

071e99e97581d0903491ee3ee3bb13fc16b4d87e 192.168.1.14:6379@16379 master - 0 1679286965908 8 connected 0-5460

vars currentEpoch 8 lastVoteEpoch 0

 




「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论