Centos7+ redis7搭建主从+哨兵模式超详细教程攻略

Centos7+ redis7搭建主从+哨兵模式超详细教程攻略_第1张图片

搭建之前请务必了解Redis的工作原理,切勿盲目搭建!!!

Redis(Remote Dictionary Server)是一个开源的高性能键值存储数据库,它主要用于存储数据、缓存和消息传递。Redis支持多种数据结构,如字符串、列表、集合、有序集合、哈希表等,这些数据结构使得Redis能够解决很多不同类型的问题。

主要用途包括:

  1. 缓存:将常用的数据存储在Redis中,以加快读取速度,减轻后端数据库的负载。这有助于提高应用程序的性能和响应时间。

  2. 会话存储:将用户会话数据存储在Redis中,使得分布式系统能够无缝地共享和管理会话状态。

  3. 计数器:用于实时统计,如网站访问次数、点赞数、在线用户数等。

  4. 消息队列:作为发布/订阅系统或消息队列,用于在不同组件或服务之间传递消息,实现解耦和异步处理。

  5. 排行榜/排名:用于存储并获取排行榜数据,如游戏排行、热门文章等。

  6. 地理空间索引:支持存储和查询地理位置信息,可用于构建位置相关的应用。

Redis的工作原理:

  1. 内存存储:Redis的所有数据都存储在内存中,因此读写速度非常快。这也是Redis高性能的主要原因。

  2. 单线程:Redis通过单线程处理所有的客户端请求,避免了多线程的竞争和同步问题,简化了数据结构的处理。然而,Redis在内部使用了非阻塞的I/O多路复用机制,使得它能够同时处理多个客户端请求。

  3. 持久化:Redis支持两种方式的数据持久化,即RDB(Redis Database Dump)和AOF(Append-Only File)。RDB通过将数据快照保存到硬盘中,而AOF则记录每个写操作的日志,使得在重启后可以恢复数据。

  4. 主从复制:Redis支持主从复制机制,可以配置多个Redis实例之间的主从关系。主节点将数据同步到从节点,从而实现数据的备份、读写分离和负载均衡。

  5. 高可用性:Redis提供了Sentinel和Cluster两种方式来实现高可用性。Sentinel用于监控Redis主节点的状态,一旦主节点故障,会自动将从节点切换为主节点。而Cluster是一种分布式方案,将数据分片存储在多个节点上,实现了自动分片和数据复制。

下面我们开始搭建Redis哨兵模式

(哨兵模式是一种故障转移策略,哨兵模式是在主从的基础上搭建)

下载redis安装包:

链接:https://pan.baidu.com/s/1VKrVGMyAKmMHsbwGxmwGkA 
提取码:6vfw

Redis是基于C语言编写的,所有安装Redis之前需要gcc依赖

yum install -y gcc tcl
把安装包放入usr目录,下载好的安装包之间拖入即可
 cd /usr

解压

 tar -zxvf redis-7.0.12.tar.gz

进入redis7.0.12

cd redis-7.0.12

使用make 命令进行编译将.c文件编译成.o文件

 make

编译成功之后会出现“It's a good idea to run 'make test'”的提示

Centos7+ redis7搭建主从+哨兵模式超详细教程攻略_第2张图片

使用命令 进行安装

make PREFIX=/usr/local/redis install

Centos7+ redis7搭建主从+哨兵模式超详细教程攻略_第3张图片

安装完后,在/usr/local/redis/bin下有几个可执行文件可以查看

 ll /usr/local/redis/bin

Centos7+ redis7搭建主从+哨兵模式超详细教程攻略_第4张图片

redis启动需要一个配置文件,可以修改端口号等信息

安装目录下将redis.conf文件拷贝到/usr/local/redis目录中

cp redis.conf /usr/local/redis

进入 /usr/local/redis

cd /usr/local/redis

修改配置文件redis.conf

vim	redis.conf
	//让Redis绑定在 0.0.0.0 这个 IP 地址上,表示可以接收任何 IP 地址的连接。
    将bind 127.0.0.1 -::1 替换为 bind 0.0.0.0
    //这个表示支持后台启动										
	将 daemonize on 替换成 daemonize yes 
    //protected-mode  保护模式,一定要关闭
	将protected yes 改为no
    //Redis运行日志						
	日志logfile   “./redis.log”
    //登录密码 建议设置为相同密码维护成本低,不同也可以
	requirepass xxxx  <设置密码>
    masterauth xxxx  <设置密码>
      
注意:从服务器把修改replicaof <主服务器ip  端口>  ----------------**主服务器不用配**

保存

:wq

加权限

 chmod 777 redis.conf

使用bin/redis-server ./redis.conf启动redis服务

./bin/redis-server ./redis.conf

使用命令ps -ef|grep redis查看已经启动的redis服务关闭redis服务 ps -ef|grep redis

使用./bin/redis-cli 命令进入到redis的客户端

./bin/redis-cli

测试安装是否成功

Centos7+ redis7搭建主从+哨兵模式超详细教程攻略_第5张图片

哨兵模式配置

修改/usr/redis-7.0.12/sentinel.conf中的配置

哨兵配置

#护模式关闭,这样其他服务起就可以访问此台redis
protected-mode no

#端口
port 26379

# 哨兵模式是否后台启动,默认no,改为yes
daemonize yes

pidfile "/var/run/redis-sentinel.pid"

# log日志保存位置
logfile  "/usr/local/redis/sentinel/redis-sentinel.log"

# 工作目录
dir "/usr/redis-7.0.12"

# master主机ip地址
sentinel monitor mymaster <主服务器ip> 6379 2

# master中redis的密码

sentinel auth-pass mymaster XXXX<主密码>

# 哨兵从master节点宕机后,等待多少时间(毫秒),认定master不可用。默认30s
sentinel down-after-milliseconds mymaster 30000

#如果报错注释掉 acllog-max-len 128
acllog-max-len 128


# 当替换主节点后,剩余从节点重新和新master做同步的并行数量,默认为 1
sentinel parallel-syncs mymaster 1


# 主备切换的时间,若在3分钟内没有切换成功,换另一个从节点切换
sentinel failover-timeout mymaster 180000


#如果报错注释掉下面内容根据情况注释
sentinel deny-scripts-reconfig yes

SENTINEL resolve-hostnames no

SENTINEL announce-hostnames no

SENTINEL master-reboot-down-after-period mymaster 0

创建日志文件夹

cd  /usr/local/redis   

mkdir sentinel

启动所有哨兵

cd /usr/local/redis/bin/

./redis-sentinel /usr/redis-7.0.12/sentinel.conf

哨兵日志

cd /usr/local/redis/sentinel/

tail -100f redis-sentinel.log

Centos7+ redis7搭建主从+哨兵模式超详细教程攻略_第6张图片

启动命令合集

#redis启动
cd /usr/local/redis
./bin/redis-server ./redis.conf
#redis客户端登录
cd /usr/local/redis
./bin/redis-cli
#redis 哨兵日志
cd /usr/local/redis/sentinel/
tail -100f redis-sentinel.log
#redis日志
cd /usr/local/redis
tail -100f redis

你可能感兴趣的:(redis,运维,云计算)