wsl下redis环境搭建及部署模型

2023-11-08

安装编译依赖

sudo apt install gcc
sudo apt-get install pkg-config
sudo apt-get install build-essential

遇到错误:
jemalloc/jemalloc.h: No such file or directory
解决方法:

make distclean  && make

sentinel 配置

sentinel节点配置

源码下有sentinel配置文件示例,自带说明:sentinel.conf
最简单的配置:

sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 60000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1

sentinel monitor resque 192.168.1.3 6380 4
sentinel down-after-milliseconds resque 10000
sentinel failover-timeout resque 180000
sentinel parallel-syncs resque 5
配置项 参数类型 作用
port 数字 哨兵进程的端口
dir 绝对路径 临时文件夹。如果一个机器部署多个sentinel,需要配置不同的路径
sentinel down-after-milliseconds <服务名称><毫秒> 单个哨兵认为的主观下线时间
sentinel parallel-syncs <服务名称><服务器数> 多少个Redis服务同步新的主机
sentinel failover-timeout <服务名称><毫秒数> 指定故障切换允许的毫秒数,超过这个时间,就认为故障切换失败
sentinel notification-script <服务名称><脚本路径> 指定sentinel检测到该监控的redis实例指向的实例异常时,调用的报警脚本

sentinel 部署模型

M: master
R: replica
S: sentinel
C: client

  1. 基本模型
       +----+
       | M1 |
       | S1 |
       +----+
          |
+----+    |    +----+
| R2 |----+----| R3 |
| S2 |         | S3 |
+----+         +----+

Configuration: quorum = 2

如果是M和R之间异步复制,当M宕机的时候存在丢失数据的可能。通过设置备份策略防止这种情况。master必须将数据至少写到一个R上才算成功。

min-replicas-to-write 1
min-replicas-max-lag 10
  1. sentinel 和client在同一台机器上
    当部署Redis的机器只有两台,可以将sentinel和client放在一起。
            +----+         +----+
            | M1 |----+----| R1 |
            |    |    |    |    |
            +----+    |    +----+
                      |
         +------------+------------+
         |            |            |
         |            |            |
      +----+        +----+      +----+
      | C1 |        | C2 |      | C3 |
      | S1 |        | S2 |      | S3 |
      +----+        +----+      +----+

      Configuration: quorum = 2
  1. 客户端少于三个
    如果Redis机器和客户端都是少于两个,可以考虑将sentinel放在Redis和client节点。
            +----+         +----+
            | M1 |----+----| R1 |
            | S1 |    |    | S2 |
            +----+    |    +----+
                      |
               +------+-----+
               |            |
               |            |
            +----+        +----+
            | C1 |        | C2 |
            | S3 |        | S4 |
            +----+        +----+

      Configuration: quorum = 3

启动sentinel

redis-sentinel /path/to/sentinel.conf
或者
redis-server /path/to/sentinel.conf --sentinel

测试

redis 自带客户端测试工具连接redis:

 src/redis-cli -h localhost -p 6600

min-replicas-to-write配置

如果只启动的master, 没有启动slave。

localhost:6600> SET yunzhong yunzhongvalue
(error) NOREPLICAS Not enough good replicas to write.

启动slave后,设置成功:

localhost:6600> SET yunzhong yunzhongvalue
OK
localhost:6600> GET yunzhong
"yunzhongvalue"

spring boot redis 配置

spring boot pom:

    <!-- redis 支持 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>

spring boot data 底层的依赖已经变成:lettuce。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

wsl下redis环境搭建及部署模型 的相关文章

  • 热重载在docker中运行的java程序

    我开发了一个java程序 应该在docker中运行 然而 我在调试docker中运行的java程序时遇到了很多痛苦 我在网上搜索 一些教程提出了像 spring dev tools 这样的工具 因为我的java程序是基于spring boo
  • 如果测试用例失败,Selenium Web 驱动程序无法关闭 Firefox 实例

    我各位 我正在使用 junit 和 selenium web 驱动程序 2 28 问题是 如果我运行成功的测试用例 Web 驱动器能够关闭 Firefox 实例 但是当测试用例失败时 Selenium Web 驱动器无法关闭 Firefox
  • 如何使用 FileChannel 将一个文件的内容附加到另一个文件的末尾?

    File a txt好像 ABC File d txt好像 DEF 我正在尝试将 DEF 附加到 ABC 所以a txt好像 ABC DEF 我尝试过的方法总是完全覆盖第一个条目 所以我总是最终得到 DEF 这是我尝试过的两种方法 File
  • 如何在一行中将字符串数组转换为双精度数组

    我有一个字符串数组 String guaranteedOutput Arrays copyOf values values length String class 所有字符串值都是数字 数据应转换为Double QuestionJava 中
  • ElasticBeanstalk Java,Spring 活动配置文件

    我正在尝试通过 AWS ElasticBeanstalk 启动 spring boot jar 一切正常 配置文件为 默认 有谁知道如何为 java ElasticBeanstalk 应用程序 不是 tomcat 设置活动配置文件 spri
  • 线程自动利用多个CPU核心?

    假设我的应用程序运行 2 个线程 例如渲染线程和游戏更新线程 如果它在具有多核 CPU 当今典型 的移动设备上运行 我是否可以期望线程在可能的情况下自动分配给不同的核心 我知道底层操作系统内核 Android linux内核 决定调度 我的
  • IntelliJ IDEA 创建的 JAR 文件无法运行

    我在 IntelliJ 中编写了一个跨越几个类的程序 当我在 IDE 中测试它时它运行良好 但是 每当我按照教程将项目制作成 jar 可执行文件时 它就不会运行 双击 out 文件夹中的文件时 该文件不会运行 并显示 无法启动 Java J
  • 在浏览器中点击应用程序时播放框架挂起

    我正在 Play 中运行一个应用程序activator run 也许 5 次中有 3 次 它会挂起 当我去http localhost 9000 它就永远坐在那里旋转 我看到很多promise timed out错误也 我应该去哪里寻找这个
  • HDFS:使用 Java / Scala API 移动多个文件

    我需要使用 Java Scala 程序移动 HDFS 中对应于给定正则表达式的多个文件 例如 我必须移动所有名称为 xml从文件夹a到文件夹b 使用 shell 命令我可以使用以下命令 bin hdfs dfs mv a xml b 我可以
  • jdbc4.MySQLSyntaxErrorException:数据库中不存在表

    我正在使用 SpringBoot 开发一个网络应用程序 这是我的application properties文件来指定访问数据库的凭据 spring datasource driverClassName com mysql jdbc Dri
  • hibernate总是自己删除表中的所有数据

    您好 我正在开发一个 spring mvc 应用程序 它使用 hibernate 连接到存储文件的 mysql 数据库 我有两个方法 一个方法添加我选择的特定文件路径中的所有文件 另一种方法调用查询以返回从 mysql 存储的文件列表 问题
  • 请求位置更新参数

    这就是 requestLocationUpdates 的样子 我使用它的方式 requestLocationUpdates String provider long minTime float minDistance LocationLis
  • 在具有相同属性名称的不同数据类型上使用 ModelMapper

    我有两节课说Animal AnimalDto我想用ModelMapper将 Entity 转换为 DTO 反之亦然 但是对于具有相似名称的一些属性 这些类应该具有不同的数据类型 我该如何实现这一目标 动物 java public class
  • Java中接口作为方法参数

    前几天去面试 被问到了这样的问题 问 反转链表 给出以下代码 public class ReverseList interface NodeList int getItem NodeList nextNode void reverse No
  • 如何将文件透明地传输到浏览器?

    受控环境 IE8 IIS 7 ColdFusion 当从 IE 发出指向媒体文件 例如 mp3 mpeg 等 的 GET 请求时 浏览器将启动关联的应用程序 Window Media Player 我猜测 IIS 提供文件的方式允许应用程序
  • 检查 protobuf 消息 - 如何按名称获取字段值?

    我似乎无法找到一种方法来验证 protobuf 消息中字段的值 而无需显式调用其 getter 我看到周围的例子使用Descriptors FieldDescriptor实例到达消息映射内部 但它们要么基于迭代器 要么由字段号驱动 一旦我有
  • 应用程序关闭时的倒计时问题

    我制作了一个 CountDownTimer 代码 我希望 CountDownTimer 在完成时重新启动 即使应用程序已关闭 但它仅在应用程序正在运行或重新启动应用程序时重新启动 因此 如果我在倒计时为 00 10 分钟 秒 时关闭应用程序
  • 将 JSON 参数从 java 发布到 sinatra 服务

    我有一个 Android 应用程序发布到我的 sinatra 服务 早些时候 我无法读取 sinatra 服务上的参数 但是 在我将内容类型设置为 x www form urlencoded 之后 我能够看到参数 但不完全是我想要的 我在
  • 中断连接套接字

    我有一个 GUI 其中包含要连接的服务器列表 如果用户单击服务器 则会连接到该服务器 如果用户单击第二个服务器 它将断开第一个服务器的连接并连接到第二个服务器 每个新连接都在一个新线程中运行 以便程序可以执行其他任务 但是 如果用户在第一个
  • JAVA - 如何从扫描仪读取文件中检测到“\n”字符

    第一次海报 我在读取文本文件的扫描仪中读取返回字符时遇到问题 正在读取的文本文件如下所示 test txt start 2 0 30 30 1 1 90 30 0 test txt end 第一行 2 表示两个点 第二行 位置索引 0 xp

随机推荐

  • 如何通过cmd找文件

    在学习的过程中 老师要找丢在各个角落的文件 这次主要找得是C盘里面的my ini文件 如果不知道在哪个盘 就每个盘改一下C变成D dir C my ini s b cmd里面的运行结果 找不到的结果
  • 搜索回溯算法—全排列 II(leetcode 47)

    题目描述 给定一个可包含重复数字的序列 nums 按任意顺序 返回所有不重复的全排列 示例 1 输入 nums 1 1 2 输出 1 1 2 1 2 1 2 1 1 示例 2 输入 nums 1 2 3 输出 1 2 3 1 3 2 2 1
  • background

    设计网页的背景图片 在一个div元素中设置多个背景图像 并指定他们的位置 body background 00ff00 url smiley gif no repeat fixed center 00ff00 指定背景的颜色 url smi
  • CAM(Class Activation Mapping)通俗篇

    在Learning Deep Features for Discriminative Localization这篇文章中 作者提出了CNN网络除了具有很强的图片处理 分类能力 同时还能够针对图片中的关键部分进行定位 这个过程被称为Class
  • 无公网IP,公网SSH可远程访问家中的树莓派

    文章目录 前言 如何通过 SSH 连接到树莓派 步骤1 在 Raspberry Pi 上启用 SSH 步骤2 查找树莓派的 IP 地址 步骤3 SSH 到你的树莓派 步骤 4 在任何地点访问家中的树莓派 4 1 安装 Cpolar内网穿透
  • cuda第一次计算耗时_MNN 1.1.0发布:几何计算/TensorRT,CUDA后端/ASR模型支持/ARM CPU和GPU性能再提升/MNN工作台...

    一 框架通用性 1 1 几何计算 几何计算是本次发布中大规模的框架重构 它将大部分算子的计算过程中与硬件后端无关部分 形状计算和几何计算 剥离出来 极大地降低了异构后端算子实现的成本 基于几何计算 MNN重写了目前所有的硬件后端 由于引入几
  • PCB板的过孔工艺--塞孔

    PCB板厂常用的塞孔方法有 1 油墨塞孔 用挡墨网来完成客户要求的过孔塞孔 2 铝片塞孔 钻出须塞孔的铝片 制成网版来进行塞孔 3 树脂塞孔 利用树脂将孔塞住 树脂塞孔的好处 1 多层板BGA上的过孔塞孔 采用树脂塞孔能缩小孔与孔间距 解决
  • vscode编写前端提升效率的三个必不可缺的插件以及使用方法

    直接官网下载这个软件就行 没什么操作的 这里面有新建文件夹 你可以自己去建一个文件夹 然后点击那个小 号 就可以新建一个文件 比如说demo01 html 后面的html是你需要自己手动输入的 第一个插件 就是这个她可以让你改动开始标签的时
  • docker学习第三章之commit提交镜像

    文章目录 前言 一 commit命令 二 案例使用步骤 1 拉一个Tomcat镜像 2 交互模式启动刚拉取的镜像同时暴露8086端口 3 重新打开一个窗口进入容器内 4 创建一个test txt文件 5 用commit命令提交镜像 6 查看
  • 区块链的数据结构和数据存储

    区块链的数据结构和数据存储 一 区块链是什么 1 1 公链 1 2 联盟链 1 3 私链 二 公链BTC和联盟链长什么样 2 1 共性 2 2 特性 三 区块链为什么安全 防篡改 四 区块链可以做什么 4 1 货币发行 比特币 4 2 证明
  • 基于微信小程序的办公用品销售系统设计和实现(源码+lw+部署文档+讲解等)

    前言 博主介绍 全网粉丝10W CSDN特邀作者 博客专家 CSDN新星计划导师 全栈领域优质创作者 博客之星 掘金 华为云 阿里云 InfoQ等平台优质作者 专注于Java 小程序技术领域和毕业项目实战 精彩专栏 推荐订阅 2023 20
  • Matlab笔记

    这里写自定义目录标题 Matlab笔记 统计矩阵中非0元素的个数 Matlab笔记 统计矩阵中非0元素的个数 sum sum A 0
  • WebBrowser控件使用详解

    WebBrowser控件使用详解 方法 说明 GoBack 相当于 IE的 后退 按钮 使你在当前历史列表中后退一项 GoForward 相当于IE的 前进 按钮 使你在当前历史列表中前进一项 GoHome 相当于IE的 主页 按钮 连接用
  • C++学习之lambda表达式

    一 基本概念 C 11 引入了lambda表达式 这个特性的最普遍应用 就是配合泛型算法 泛型算法 采用了迭代器操作 从而使得各种不同的容器能使用一套算法 泛型算法允许我们定制自己的操作 即传递一个可调用对象 lambda其实也是一个可调用
  • 华为OD机试 - 导师请吃火锅(Python)

    题目描述 入职后 导师会请你吃饭 你选择了火锅 火锅里会在不同时间下很多菜 不同食材要煮不同的时间 才能变得刚好合适 你希望吃到最多的刚好合适的菜 但你的手速不够快 用m代表手速 每次下手捞菜后至少要过m秒才能再捞 每次只能捞一个 那么用最
  • 数据挖掘导论课后习题答案-第四章

    最近在读 Introduction to Data Mining 这本书 发现课后答案只有英文版 于是打算结合自己的理解将答案翻译一下 其中难免有错误 欢迎大家指正和讨论 侵删 第四章 a Gini 1 0 5 2 0 5 2 0 5 b
  • prod函数,cumprod函数【Matlab】

    1 prod函数 prod函数用于求矩阵元素的积 其调用格式如下 1 B prod A 若A为向量 则返回所有元素的积 若A为矩阵 则返回各列所有元素的积 2 B prod A dim 返回矩阵A中的第dim维方向的所有元素的积 prod函
  • shell 脚本一键生成busybox从零创建文件系统for x86_64

    bin sh update images for x86 64 git clone https github com torvalds linux git depth 1 verbose cd linux make defconfig cp
  • Real-world Multi-object, Multi-grasp Detection论文Demo复现

    前言 本文主要参考这篇博客 然后根据自己的实际复现中遇到的问题写出 1电脑的环境 ubuntu16 04 tensorflow gpu1 12 0 cuda9 0 cudnn7 2 https github com ivalab 论文资源的
  • wsl下redis环境搭建及部署模型

    安装编译依赖 sudo apt install gcc sudo apt get install pkg config sudo apt get install build essential 遇到错误 jemalloc jemalloc