IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> redis主从+哨兵+集群模式搭建详解 -> 正文阅读

[大数据]redis主从+哨兵+集群模式搭建详解

一、redis主从安装

1. 下载redis

Download | Redis

我这里选择的是redis-6.2.7版本

这里三台机器,都需要安装redis

node1 192.168.157.128

node2 192.168.157.129

node3 192.168.157.130

2. 安装redis

# 解压redis
tar -zxvf redis-6.2.7.tar.gz
# 编译安装
cd redis-6.2.7
make

3. 修改配置

node1 主 node2 node3从

node1 redis.conf

bind  192.168.157.128
port 6379 
daemonize yes 
logfile ./logs/redis_6379.log
pidfile  ./pid/redis_6379.pid
requirepass 123456
masterauth  123456

node2

bind  192.168.157.129
port 6379 
daemonize yes 
logfile ./logs/redis_6379.log
pidfile  ./pid/redis_6379.pid 
replicaof  192.168.157.128 6379
requirepass 123456
masterauth  123456

node3

bind  192.168.157.130
port 6379 
daemonize yes 
logfile ./logs/redis_6379.log
pidfile  ./pid/redis_6379.pid 
replicaof  192.168.157.128 6379
requirepass 123456
masterauth  123456

4. 相关解释

bind 为当前主机的地址

port 为redis启动的端口

daemonize 是否为后台启动,默认为no

logfile 日志路径

pidfile pid路径

replicaof 主节点ip? port

requirepass redis的密码

masterauth 主节点密码

5. 启动redis

# 在redis.conf文件目录下
./src/redis-server redis.conf

查看日志文件输出,可以看到129和130已经同步完成。

6. 测试

在node1的redis中存数据,查看node2,node3中是否存在。

使用redis-cli 连接redis?

# h 主机地址 p 端口号 a 密码
redis-cli -h 192.168.157.128 -p 6379 -a 123456
# 也可以进入之后使用auth 123456 来认证
redis-cli -h 192.168.157.128 -p 6379
auth 123456

从节点输入命令?info replication 查看

?主节点node1中设置set name jack

从节点可以get name

?从节点只能读不能写

?7. 注意

  • 主节点可以写,从节点不能写,只能读。主节点中的所有数据都会保存到从节点中去。
  • 主节点断开连接,从节点依旧连接到主节点的,但是没有写操作,这个时候,主节点如果回来了,从节点依旧可以直接获取到主节点写的信息!
  • 如果是使用命令行,来配置的主从,这个时候如果重启了,就会变回主节点!只要变为从节点,立马就会从主节点中获取值!

8. 主从复制原理

  • Slave 启动成功连接到 master 后会发送一个sync同步命令。
  • Master 接到命令,启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,并完成一次完全同步。
  • 全量复制: slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。
  • 增量复制: Master 继续将新的所有收集到的修改命令依次传给slave,完成同步,但是只要是重新连接master,一次完全同步(全量复制)将被自动执行! 主节点的数据一定可以在从节点中看到。
    ?

二、 Redis 哨兵模式

1. 配置sentinel.conf文件

port 26379
protected-mode no
daemonize yes
logfile ./logs/sentinel.log
sentinel monitor redis-master 192.168.157.128 6379 2
sentinel auth-pass redis-master 123456
sentinel down-after-milliseconds redis-master 3000
sentinel failover-timeout redis-master 180000

port 哨兵模式的端口号

protected-mode 保护模式,外部是否可以访问,这是设置为no,外部可以访问

daemonize 设置后台启动

logfile 日志文件

sentinel monitor 执行服务器ip和端口,并且指定当有2台哨兵认为主节点挂了,则对主节点进行容灾切换

sentinel auth-pass 主节点对应的密码

sentinel down-after-milliseconds 主节点多久每反应则认为挂了

sentinel failover-timeout 故障转移超时时间(毫秒)

2. 分别启动三台服务器上的哨兵

# 在sentinel.conf目录下,启动哨兵
./src/redis-sentinel sentinel.conf

3. 查看sentinel.log日志

可以看到启动成功,并且成功监听?master

4. 查看sentinel信息

?5. Redis 容灾切换模拟

将node1 redis服务停掉

可以看到redis-master的状态先变成down,然后重新选择一个master,192.168.157.130成为新的主节点

?重新启动192.168.157.128节点的redis,查看sentinel.log信息,可以看到此时128节点的redis变成了slave 从节点了。

?三、redis集群模式

这里选择每台机器启动两个redis服务,端口分别为7001和7002

1. 准备redis工作目录

#创建redis01 redis02目录
mkdir redis01 redis02
#将redis复制到redis01和redis02下
cp -R redis-6.2.7/ redis01/
cp -R redis-6.2.7/ redis02/
#删除rdb文件
rm -rf redis01/dump.rdb
rm -rf redis02/dump.rdb

2. 修改配置

redis.conf

bind 192.168.157.129
port 7001
daemonize yes
logfile "./logs/redis_7001.log"
pidfile "./pid/redis_7001.pid"
requirepass "123456"
masterauth "123456"
dir "/opt/apps/redis01/data"
cluster-enabled yes
cluster-node-timeout 10100
appendonly yes

主要增加了cluster-enabled yes 这个配置,表示开启集群

3. 启动每个redis

./src/redis-server redis.conf

4. 创建redis集群

在任意一台机器上执行创建集群命令

./src/redis-cli --cluster create \
192.168.157.128:7001 192.168.157.128:7002 \
192.168.157.129:7001 192.168.157.129:7002 \
192.168.157.130:7001 192.168.157.130:7002 \
--cluster-replicas 1 -a 123456

--cluster-replicas 1 表示一主一从

-a 是密码

创建完成的打印信息?

5. 查看集群信息

#连接 -c 以集群模式连接
./src/redis-cli -h 192.168.157.128 -c -p 7001 -a 123456
#查看节点信息
cluster nodes

?存数据和取数据都会告诉你在哪个槽哪个服务上

当我们手动停掉一个master时,会重新选一个master,而那个停掉的master重新启动后成为slave节点。

?至此集群搭建完成。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-09-30 00:59:31  更:2022-09-30 01:02:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 5:11:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码