当前位置: 首页 > article >正文

【部署篇】Redis-03主从模式部署(源码方式安装)

一、准备主机 

主从模式只是解决了数据备份容灾并不能解决单点故障问题,生产环境中需要在主从模式基础上增加哨兵,实现主节点宕机时自动将其中一个重节点设置为新的主节点。

主机IP角色说明
192.168.128.31master,主节点可读写。
192.168.128.32slave,从节点只读,同步主节点数据(可以有多个从节点)。

二、下载Redis

进入官网找到下载地址 Downloads - Redis

wget https://download.redis.io/releases/redis-7.0.15.tar.gz

三、Linux源码部署

1、安装依赖

# 安装redis编译依赖,所有主机都执行
yum install -y gcc tcl

 2、安装Redis

## 以下为安装redis服务,所有主机都执行

# 解压
tar -zxvf redis-7.0.15.tar.gz
 
# 移动redis目录
mv redis-7.0.15 /usr/local/redis
 
# 编译
cd /usr/local/redis
make
 
# 安装
make install

3、修改配置

1)、配置master节点

# 修改配置文件以符合你的需求(更多参数可参考Redis-01介绍)

# 启用守护进程
sed -i 's/^daemonize no/daemonize yes/' /usr/local/redis/redis.conf

# 绑定所有本机IP地址
sed -i 's/^bind .*/bind 0.0.0.0/' /usr/local/redis/redis.conf

# 设置认证密码
sed -i 's/# requirepass .*/requirepass 123456/' /usr/local/redis/redis.conf

2)、配置slave节点

默认配置replica-read-only yes及从机为只读,不用修改;这里是新版本的参数配置,老版本对应的是slaveof 和slave-read-only yes。


# 修改配置文件以符合你的需求(更多参数可参考Redis-01介绍)

# 启用守护进程
sed -i 's/^daemonize no/daemonize yes/' /usr/local/redis/redis.conf

# 绑定所有本机IP地址
sed -i 's/^bind .*/bind 0.0.0.0/' /usr/local/redis/redis.conf

# 设置认证密码
sed -i 's/# requirepass .*/requirepass 123456/' /usr/local/redis/redis.conf

# 配置主节点IP和端口
echo "replicaof 192.168.128.31 6379" >> /usr/local/redis/redis.conf

# 配置主节点认证密码
echo "masterauth 123456" >> /usr/local/redis/redis.conf

4、启动服务

# 主从服务器都执行以下命令启动服务
redis-server /usr/local/redis/redis.conf

5、关闭防火墙

## 这里直接关闭防火墙,也可以在防火墙中放天6379端口 

# 关闭防火墙
systemctl stop firewalld

6、主从状态

 1)、查看主节点主从状态

role:master,表示当前节点为主节点,connected_slaves:1表是有一个从节点在线。

# 连接到主节点
redis-cli -h 192.168.128.31

# 密码认证
> auth 123456

# 查看主从同步状态
> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.128.32,port=6379,state=online,offset=42,lag=0
master_failover_state:no-failover
master_replid:835b68d4267a5b50be60493529b9c052d430e83e
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:42
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:42

 2)、查看从节点主从状态

role:slave,表示当前节点为从节点,master_failover_state:no-failover表示主从同步状态无错误,状态正常。

redis-cli
127.0.0.1:6379> info replication
NOAUTH Authentication required.
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> info replication
# Replication
role:slave
master_host:192.168.128.31
master_port:6379
master_link_status:up
master_last_io_seconds_ago:7
master_sync_in_progress:0
slave_read_repl_offset:252
slave_repl_offset:252
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:835b68d4267a5b50be60493529b9c052d430e83e
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:252
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:252

7、停止服务

redis-cli shutdown

四、卸载redis

  1. 查找Redis安装路径‌:

    • 使用命令which redis-server查找Redis可执行文件的路径。
  2. 使用CMake卸载Redis‌:

    • 进入最初构建Redis的源代码目录。
    • 执行命令make uninstall进行卸载。
  3. 手动删除残余文件‌:

    • 使用命令find /usr/local/bin -name "redis*" -exec rm -rf {} \;找到并删除Redis相关的残余文件。
  4. 验证卸载是否成功‌:

    • 执行命令redis-server --version,若卸载成功,终端应显示“command not found”或类似信息。

五、安装常见问题

1、编译环境错误

    在未安装gcc、tcl前进行了make,编译报如下错误;安装后,再次make还是报如下错误,这时需要先进行清理再进行编译:make distclean && make

In file included from adlist.c:34:0:
zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory
 #include <jemalloc/jemalloc.h>
                               ^
compilation terminated.

 六、更多Redis文章跟篇

【部署篇】Redis-01介绍
【部署篇】Redis-02单机模式部署(源码方式安装)
【部署篇】Redis-03主从模式部署(源码方式安装)
【部署篇】Redis-04哨兵模式部署(源码方式安装)


http://www.kler.cn/news/353491.html

相关文章:

  • 6CXX:UICC告诉终端数据长度
  • PyCharm配置Flask开发环境
  • 【数据结构-栈】【位运算优化】力扣3170. 删除星号以后字典序最小的字符串
  • SQL server 存储过程与函数
  • 【数据结构与算法】LeetCode每日一题
  • 机器学习与神经网络:开启物理学的新篇章
  • SEM推广如何进行数据分析
  • Ubuntu:用户不在sudoers文件中
  • 【Java小白图文教程】-01-Java环境安装-变量
  • 计算机是如何输入存储输出汉字、图片、音频、视频的
  • 10:00面试,10:08就出来了,问的问题有点变态。。。
  • Spring Boot框架下的知识管理策略
  • 【Python爬虫】看电影还在用VIP?一个python代码让你实现电影自由!附源码
  • C#使用PdfSharp生成PDF文件实例详解
  • find_library、pkg_check_modules、pkg_search_module的区别
  • 【Flutter】Dart:环境搭建
  • 1.项目初始化
  • 关键词提取技术:TF-IDF 详解
  • react页面跳转时携带参数,返回时能展示跳转之前的数据
  • informer学习笔记