java中的接口是类吗
243
2022-10-20
web安全入门-redis服务器集群的搭建
现在的服务都设立集群模式,既是我们以前的主备冗余,当我们通过某种方式获得某服务器的控制权之后,使其宕机已经对用户没有什么影响了。
这时代,信息和数据才是核心的资产。(加密与解密会是未来安全方向)
下面我们来学习下redis服务的一主二从三哨兵。
redis服务
Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
集群架构
简单地说,集群就是指一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器。这些服务器之间可以彼此通信,协同向用户提供应用程序,系统资源和数据,并以单一系统的模式加以管理。当用户请求集群系统时,集群给用户的感觉就是一个单一独立的服务器,而实际上用户请求的是一组集群服务器。
不同的业务会有若干秒的切换时间,DB业务明显长于Web业务切换时间。
redis服务安装
我们安装三台redis服务,操作系统为centos 7
IP地址段规划为这样
一主,二备,三哨兵(哨兵每个机器上设置)
安装依赖包
yum install -y gcc
安装gcc编译环境
安装中
安装完成
下载安装包
我们联网使用wget下载安装包
wget -zxf redis-7.0.2.tar.gz
解压之后,查看目录
cd redis-7.0.2/
进行编译
make
编译安装
make install
默认安装在 /usr/local/bin/目录,这个目录默认就在系统环境变量中。
需要更改可以在后面接PREFIX = 安装路径
安装完成
启动redis
redis-server
如果出现如上图所示,代表服务成功
ctrl + c 终止服务
关闭服务
./redis-cli shutdown
设置开机启动
systemctl enable redis
启动服务
systemctl start redis
停止服务
systemctl stop redis
查看服务状态
systemctl status redis
redis服务的一主二备三哨兵
默认redis支持分布式部署。
要修改模式,就要修改配置文件。
主从模式
哨兵监控
一主二从三哨兵模式
配置文件
修改原redis.conf配置文件
目录在
我们按照网上大神的配置
1.先在网络部分注释掉单机连接那一行,即注释掉bind 127.0.0.1 2.同样我们要将后台运行打开:daemonize no,设置为yes。3.将 保护模式关闭:protected-mode yes 改为:protected-mode no 4.打开RDB持久化配置:#RDB持久化策略 默认三种方式,[900秒内有1次修改],#[300秒内有10次修改],[60秒内有10000次修改]即触发RDB持久化,#我们可以手动修改该参数或新增策略save 900 1save 300 10save 60 10000 #RDB文件名dbfilename dump.rdb#RDB文件存储路径dir ./策略配置:#在seconds秒内有changes次数据修改就触发RDB持久化5.开启AOF持久化配置appendonly yes#AOF文件名appendfilename "appendonly.aof"#AOF文件存储路径 与RDB是同一个参数,共用一个文件路径dir ./ #即bin目录下#AOF策略,一般都是选择第一种[always:每个命令都记录],#[everysec:每秒记录一次],[no:看机器的心情高兴了就记录,linux一般半个小时同步一次]#appendfsync alwaysappendfsync everysec# appendfsync no#aof文件大小比起上次重写时的大小,增长100%(配置可以大于100%)时,触发重写。#[假如上次重写后大小为10MB,当AOF文件达到20MB时也会再次触发重写,以此类推auto-aof-rewrite-percentage 100 #aof文件大小超过64MB*2时,触发重写,#为何要乘以2,因为auto-aof-rewrite-percentage 100 是翻倍即100%,#达到翻倍时才重写auto-aof-rewrite-min-size 64mb 6.打开混合持久化:#6.aof-use-rdb-preamble yes # 检查混合持久化是否打开,redis5.0后默认开启
允许远程连接
设置后台启动
关闭保护模式
开启AOF持久化配置
appendonly yes
配置参数可以参考
主机配置
# 所有ip均可访问 bind 0.0.0.0 # 启动端口6379 port 6379 # redis进程是否以守护进程的方式运行,yes为是,no为否(不以守护进程的方式运行会占用一个终端) protected-mode no # 是否开启保护模式,默认开启。要是配置里没有指定bind和密码,开启该参数后,redis只会本地进行访问,拒绝外部访问。要是开启了密码和bind,可以开启。否则最好关闭设置为no daemonize yes # 日志 logfile ./redis.log # 设置redis连接密码,如果配置了连接密码,客户端在连接redis是需要通过auth
从机配置
注意:老版本使用slaveof指定主机的IP和端口,新版本使用replicaof指定主机的IP和端口 注意:由于搭建的集群需要自动容灾切换,主数据库可能会变成从数据库,所以三台机器上都需要同时设置 requirepass 和 masterauth 配置项 bind 0.0.0.0 port 6379 protected-mode no daemonize yes logfile ./redis.log requirepass 123456 masterauth 123456 # 指定当本机为 slave 服务时,设置 master 服务的IP地址及端口,在 redis 启动的时候会自动跟 master 进行数据同步,所以两台从机同样配置。(主从配置时,必须要设置此密码) slaveof 192.168.130.1 6379
哨兵配置
哨兵模式需要修改sentinel.conf文件,三台服务器均为此配置# 端口默认为26379。port 26379# 关闭保护模式,可以外部访问。protected-mode no# 设置为后台启动。daemonize yes# 日志文件。logfile ./sentinel.log# 指定主机IP地址和端口(三台配置均为指定主机ip),并且指定当有2台哨兵认为主机宕机,则对主机进行容灾切换。mymaster:设置master名字,必须在其它有用到该名字的命令之前设置sentinel monitor mymaster 192.168.130.1 6379 2# 当在Redis实例中开启了requirepass,这里就需要提供密码。sentinel auth-pass mymaster 123456# 这里设置了主机多少秒无响应,则认为挂了。此处3秒sentinel down-after-milliseconds mymaster 3000# 主备切换时,最多有多少个slave同时对新的master进行同步,这里设置为默认的1。snetinel parallel-syncs mymaster 1# 故障转移的超时时间,这里设置为三分钟。sentinel failover-timeout mymaster 180000
启动哨兵模式
./redis-sentinel ../sentinel.conf登录:./redis-cli -p 263791、登录主机redis:./redis-cli -p 63792、手动下线:shutdown3、若有新的主机被选举出,则表示成功
防火墙配置
查看防火墙是否开启:systemctl status firewalld开启防火墙:systemctl start firewalld开放端口:firewall-cmd --add-port=6379/tcp --permanent --znotallow=public#重启防火墙(修改配置后要重启防火墙)firewall-cmd --reload# 关闭防火墙systemctl stop firewalld
效果如下
从机效果
主机效果
有两个从机。
redis的集群搭建到此结束。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~