Redis部署之主从

使用两台云服务器,在 Docker 下部署。

Redis版本为:7.2.4

下载并配置redis 配置文件

下载

 wget -c http://download.redis.io/redis-stable/redis.conf

配置

master节点配置

bind  0.0.0.0										# 使得Redis服务器可以跨网络访问,生产环境请考虑安全性
requirepass 123456              # 设置master连接密码,slave可省略
appendonly yes									# 是否开启 AOF 持久化

这里需要开启AOF,保证写命令及时同步到从节点。

slave节点配置

bind  0.0.0.0										# 使得Redis服务器可以跨网络访问,生产环境请考虑安全性
replicaof 192.168.12.30 6379		# 主节点ip 端口
masterauth 123456               # slave连接master密码,master可省略

在 Redis 5.0 及之后的版本中,建议使用 replicaof 命令来设置主从复制关系,slaveof 命令已经被标记为废弃,但仍然可以使用。

slaveof 命令在 Redis 6.0 及之后的版本中将被完全删除。

启动

启动前创建目录进行文件挂载

# 配置文件存放目录,将redis.conf文件移动到该目录
mkdir -p /root/docker-data/redis/config
# 数据存放目录
mkdir -p /root/docker-data/redis/data

在两台服务器分别执行以下命令,启动 docker 容器。

docker run -d -p 6379:6379 -v /root/docker-data/redis/config/:/usr/local/etc/redis/ -v /root/docker-data/redis/data:/data redis redis-server /usr/local/etc/redis/redis.conf

验证

使用docker logs -f <container-id>查看容器日志,若主从节点打印以下信息则表示部署成功。

主节点

从节点

踩坑记录

部署完成后发现通过客户端可以访问主节点,但无法访问从节点,折腾半天发现原来是从节点未修改redis.conf中的bind配置,默认只能接受来自其运行的同一主机的客户端连接,注释该配置或配置为bind 0.0.0.0即可。

关于bind配置参数说明如下(for ChatGPT):

在Redis的配置文件(redis.conf)中,bind指令用于指定Redis服务器绑定的网络接口地址或主机名。它控制Redis服务器监听来自哪个网络接口的连接请求。

默认情况下,bind指令是注释掉的,这意味着Redis服务器会监听所有可用的网络接口,包括本地环回接口(127.0.0.1)和所有网络接口(0.0.0.0),以允许来自任何地址的连接请求(这里存在差异,最新版本默认开启)。

如果您取消注释并设置了bind指令,Redis服务器将仅绑定到指定的网络接口地址或主机名上。这对于限制Redis服务器监听的网络接口是有用的,可以增加安全性并确保只有特定网络接口上的连接请求被接受。

例如,如果您希望Redis仅监听本地环回接口(127.0.0.1),则可以将bind指令设置为:

bashCopy code
bind 127.0.0.1

这将使Redis服务器仅接受来自本地环回接口的连接请求。如果要允许来自特定网络接口的连接请求,请将bind指令设置为该网络接口的IP地址或主机名。

需要注意的是,如果Redis服务器绑定到特定的网络接口,而不是监听所有可用的网络接口,可能会导致外部客户端无法连接到Redis服务器。因此,在设置bind指令时,请确保您了解并考虑了相关的网络配置和安全性需求。

注意:

  • 在生产环境中,建议设置 bind 配置项,以限制 Redis 服务器的访问权限,提高安全性。

参考资料

Redis 主从复制原理及搭建部署

Redis主从模式部署

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/805311.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工具类代码

工具类代码 题外话前言Excel工具 题外话 如果各位客官有需要开发一些小小需求&#xff0c;可以私我哦&#xff0c;承接小需求开发&#xff0c;或问题定位&#xff08;仅限java&#xff09;&#xff0c;价格私聊哈 前言 在开发过程中可能偶尔会用到一些小工具类&#xff0c;故想…

C++ 标准库类型priority_queue

C/C总述&#xff1a;Study C/C-CSDN博客 堆&#xff08;数据结构&#xff09;&#xff1a;堆-CSDN博客 priority_queue(优先队列) 在优先队列中&#xff0c;元素被赋予优先级&#xff08;按约定的函数来赋予优先级&#xff0c;底层通过堆来实现&#xff09;。当访问元素时&am…

Linux 开发----在线英语字典

应用开发&#xff01; 这款应用程序是在Linux操作系统下完成的&#xff0c;整个项目包含了众多的知识点&#xff08;文件IO、进程、网络、数据库&#xff09;。动手操作之前可以先大致设计出流程图&#xff0c;然后根据流程图进行各个模块的实现&#xff08;注册模块、登录模块…

谈谈什么是 Redis

&#x1f525;博客主页&#xff1a;fly in the sky - CSDN博客 &#x1f680;欢迎各位&#xff1a;点赞&#x1f44d;收藏⭐️留言✍️&#x1f680; &#x1f386;慢品人间烟火色,闲观万事岁月长&#x1f386; &#x1f4d6;希望我写的博客对你有所帮助,如有不足,请指正&#…

RISC-V GNU Toolchain 工具链安装问题解决(stdio.h 问题解决,pk fence.i 问题解决)

我的安装过程主要参照 riscv-collab/riscv-gnu-toolchain 的官方 Readme 和这位佬的博客&#xff1a;RSIC-V工具链介绍及其安装教程 - 风正豪 &#xff08;大佬的博客写的非常详细&#xff0c;唯一不足就是 sudo make linux -jxx 是全部小写。&#xff09; 工具链前前后后我装了…

【嵌入式C 数据结构】二分查找,自定义通用数据结构用于不同类型数据的查找

实现功能描述如下: 自定义一个通用的数据结构,可定义 u8 u16 u32 float 等多种数据类型,参考C通用库的 qsort 函数若数组有序,直接调用接口实现二分查找可实现单个数据有序插入数组,并查找可实现数组中数据的删除C语言标准库函数qsort(快速排序函数) 目录 1. 二分查找算…

2024.04.10

# 前言 2024年4月10号也算是有纪念意义的一天吧&#xff0c;什么纪念意义呢&#xff1f;前面博客可能也说过&#xff0c;本人经历过两年前端&#xff0c;然后因为一些不可控的原因转为java后端一年&#xff0c;然后前段时间因为一些原因接触了解了嵌入式这个行业&#xff0c;所…

JavaScript中的BOM: history-Location-Navigator

BOM(浏览器对象模型) - BOM中为我们提供了一组对象&#xff0c;借助这组对象可以通过JS来操作浏览器 Window &#xff08;代表整个浏览器窗口&#xff0c;全局对象&#xff09; Navigator &#xff08;表示浏览器的信息&#xff09; Location &#xff08;表示浏览器地址栏…

IC卡和RFID卡的区别

简而言之&#xff0c;IC卡的原理即RFID&#xff0c;而RFID卡的范围更广&#xff0c;包括有ID卡、IC卡和NFC卡以及其它等电子卡/标签。他们主要的区别在于工作频段。 IC卡分为接触式和非接触式IC卡&#xff0c;都属于RFID范畴&#xff0c;接触式IC卡其芯片直接封装在卡基表面&am…

【数据结构】-- 单链表 vs 双向链表

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;python从入门到精通&#xff0c;魔法指针&#xff0c;进阶C&#xff0c;C语言&#xff0c;C语言题集&#xff0c;C语言实现游戏&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持创作博文…

动态规划刷题(2)之杨辉三角(详细解释)

最近在自学动态规划,网上到处找资料学习: 在这里记录我的刷题历史: 题目都是在力扣里面刷的!! 这里,我放一个刷动态规划的链接在这里:动态规划知识点题库 - 力扣(LeetCode) 力扣 在这里附加动态规划相关知识点:动态规划(DP)-CSDN博客文章浏览阅读197次。动态规划…

算法第四十一天-排除排序链表中的重复元素Ⅱ

排除排序链表中的重复元素Ⅱ 题目要求 解题思路 题意&#xff1a;在一个有序链表中&#xff0c;如果一个节点的值出现不止一次&#xff0c;那么把这个节点删除掉 重点&#xff1a;有序链表&#xff0c;所以&#xff0c;一个节点的值出现不止一次&#xff0c;那么他们必相邻。…

uniapp_微信小程序_NaN

一、定义 isNaN() 函数用于检查一个值是否为 NaN。它接受一个参数&#xff0c;该参数可以是任何 JavaScript 数据类型&#xff0c;包括数字、字符串、对象等。如果参数是 NaN&#xff0c;或者不能被转换为数字&#xff0c;则 isNaN() 返回 true&#xff1b;否则返回 false。 …

爬虫 新闻网站 以湖南法治报为例(含详细注释,控制台版) V2.0 升级自定义查询关键词、时间段

目标网站&#xff1a;湖南法治报 爬取目的&#xff1a;为了获取某一地区更全面的在湖南法治报已发布的宣传新闻稿&#xff0c;同时也让自己的工作更便捷 环境&#xff1a;Pycharm2021&#xff0c;Python3.10&#xff0c; 安装的包&#xff1a;requests&#xff0c;csv&#xff…

Redis-缓存击穿-逻辑过期

Redis-缓存击穿-逻辑过期实现 缓存击穿&#xff1a;也称热点key问题&#xff0c;大量访问一个key&#xff0c;而这个key恰巧到期了&#xff0c;导致大量的请求访问数据库。增大数据库的负担。为了解决这个问题可以采用互斥锁或逻辑过期的方式解决。本章采用逻辑过期的方式解决…

基于微信小程序的苏州博物馆文创产品售卖系统

前言 基于小程序的苏州博物馆文创产品售卖系统的设计与实现能够通过互联网得到广泛的、全面的宣传&#xff0c;让尽可能多的用户了解和熟知基于小程序的苏州博物馆文创产品售卖系统的设计与实现的便捷高效&#xff0c;不仅为群众提供了服务&#xff0c;而且也推广了自己&#…

leetcode209--长度最小的子数组

1. 题意 找到最小满足和大于 t a r g e t target target的子数组长度。 长度最小的子数组 2. 题解 2.1 滑动窗口 class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {int l 0;int sum 0;int sz nums.size();int ans INT_MAX;for (…

【leetcode面试经典150题】37. 矩阵置零(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…

堆 和 优先级队列

目录 一、堆 二、优先级队列 1、初识优先级队列 2、实现一个优先级队列 3、PriorityQueue &#xff08;1&#xff09;实现了Comparable接口&#xff0c;重写了compareTo方法 &#xff08;2&#xff09;实现了Comparator接口&#xff0c;重写了compare方法 4、 Prio…

Django+Celery框架自动化定时任务开发

本章介绍使用DjCelery即DjangoCelery框架开发定时任务功能&#xff0c;在Autotestplat平台上实现单一接口自动化测试脚本、业务场景接口自动化测试脚本、App自动化测试脚本、Web自动化测试脚本等任务的定时执行、调度、管理等&#xff0c;从而取代Jenkins上的定时执行脚本和发送…