Redis cluster集群搭建

2023-11-19

通过三台虚拟机搭建一个3主3从的cluster集群

1、安装 gcc-c++ 依赖包

yum install gcc-c++

2、下载安装包并解压

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

tar -zxvf redis-6.0.9.tar.gz

3、编译安装

编译

    cd redis-6.0.9

    make 

默认安装

    make install

指定路径安装 ( PREFIX 必须大写)

   sudo make install PREFIX=/export/App/redis6.0 CONF_PATH=/export/App/redis6.0/conf

4、拷贝配置文件到指定目录

sudo cp software/redis-6.0.9/redis.conf ./conf/

调整配置信息
#bin 127.0.0.1                        //如果要远程访问就将这里注释掉
protected-mode no                     //保护模式
requirepass "mGo#fgdfg"               //密码认证
masterauth "mGo#fgdfg"                //密码认证,节点数据同步的时候用
logfile "按需设置"
port  6379                             //端口6379       
daemonize    yes                       //redis后台运行
pidfile  /var/run/redis_6379.pid       //pidfile文件
cluster-enabled  yes                   //开启集群  把注释#去掉
cluster-config-file  nodes_6379.conf   //集群的配置  配置文件首次启动自动生成6379
cluster-node-timeout  15000            //请求超时  默认15秒,可自行设置
appendonly  yes                        //aof日志开启  有需要就开启,它会每次写操作都记录一条日志 

5、拷贝 redis-cli 到 bin 目录

sudo cp redis-6.0.9/src/redis-cli bin/

6、集群节点配置

a、安装目录下创建 cluster 目录

      sudo mkdir redis_cluster

b、拷贝配置文件到 6379 6380 目录下

      sudo cp -r conf/ redis_cluster/6379

      sudo cp -r conf/ redis_cluster/6380

c、调整 6379 目录下的下 redis.conf 配置信息

#bin 127.0.0.1                        //如果要远程访问就将这里注释掉
protected-mode no                     //保护模式
requirepass "mGo#fgdfg"               //密码认证,登录权限
masterauth "mGo#fgdfg"                //密码认证,节点数据同步的时候用
port  6379                             //端口6379
maxmemory 4GB     
daemonize    yes                       //redis后台运行
pidfile  /var/run/redis_6379.pid       //pidfile文件
cluster-enabled  yes                   //开启集群  把注释#去掉
cluster-config-file  nodes_6379.conf   //集群的配置  配置文件首次启动自动生成6379
cluster-node-timeout  15000            //请求超时  默认15秒,可自行设置
appendonly  yes                        //aof日志开启  有需要就开启,它会每次写操作都记录一条日志 

d、将 6379 调整后的 redis.conf 复制到 6380 并替换配置

      sudo cp -r conf/ redis_cluster/6380

      cd redis_cluster/6380

      配置替换:sudo sed -i 's/6379/6380/g' redis.conf

e、启动节点验证

      sudo bin/redis-server redis_cluster/6379/redis.conf

      sudo bin/redis-server redis_cluster/6380/redis.conf

f、检查节点启用情况

     ps -ef | grep redis

7、创建集群

sudo bin/redis-cli --cluster create 10.221.2.62:6379 10.221.2.62:6380 10.25.1.92:6379 10.25.1.92:6380 11.249.2.108:6379 11.249.2.108:6380 --cluster-replicas 1 -a mGo#fgdfg

ps: redis-5.0.0版本开始才支持“--cluster”

集群验证:

bin/redis-cli -c -a mGo#fgdfg    // -c 设置集群模式连接

可能遇到的问题

1、CentOS7上安装Redis(6.0.9)进入目录后make,编译失败提示:struct redisServer’没有名为‘sentinel_mode’的成员,In file included from server.c:30:0:server.h:1072:5: error: expected specifier-qualifier-list before '_Atomic' _Atomic unsigned int lruclock; /* Clock for LRU eviction */

问题出现原因:gcc版本问题

查看gcc版本:gcc -v

如果 gcc 的版本低于5,使用以下命令升级

sudo yum install centos-release-scl

sudo yum install devtoolset-7-gcc*

scl enable devtoolset-7 bash

2、是否只设置requirepass就可以,masterauth是否需要同步设置? 

redis启用密码认证一定要requirepass和masterauth同时设置。

如果主节点设置了requirepass登录验证,在主从切换,slave在和master做数据同步的时候首先需要发送一个ping的消息给主节点判断主节点是否存活,再监听主节点的端口是否联通,发送数据同步等都会用到master的登录密码,否则无法登录,log会出现响应的报错。 也就是说slave的masterauth和master的requirepass是对应的,所以建议redis启用密码时将各个节点的masterauth和requirepass设置为相同的密码,降低运维成本。当然设置为不同也是可以的,注意slave节点masterauth和master节点requirepass的对应关系就行。

3、requreipass和master的作用?

masterauth作用:主要是针对master对应的slave节点设置的,在slave节点数据同步的时候用到。

requirepass作用:对登录权限做限制,redis每个节点的requirepass可以是独立、不同的。

4、redis 提示:(error) MOVED xxx 什么原因?

原因:一般是因为启动redis-cli时没有设置集群模式所导致。

解决: redis-cli -c -p 6379 

5、关于内存设置 redis.conf

如果没有显式设置maxmemory配置项,默认情况下Redis不会限制内存使用,即maxmemory的默认值为0,表示不设置最大内存限制。

这意味着Redis在默认情况下可以使用系统的全部可用内存,直到系统的内存资源耗尽为止。然而,这也可能导致Redis过度使用内存并影响系统的稳定性。

因此,在生产环境中,建议明确设置maxmemory配置项,以控制Redis的内存使用,并确保系统有足够的内存供其他关键应用程序使用。

6、淘汰策略设置

noeviction: 默认策略,不淘汰,如果内存已满,添加数据是报错。
allkeys-lru: 在所有键中,选取最近最少使用的数据抛弃。
volatile-lru: 在设置了过期时间的所有键中,选取最近最少使用的数据抛弃。
allkeys-random: 在所有键中,随机抛弃。
volatile-random: 在设置了过期时间的所有键,随机抛弃。
volatile-ttl: 在设置了过期时间的所有键,抛弃存活时间最短的数据。

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

Redis cluster集群搭建 的相关文章

随机推荐

  • Python蓝桥杯 基础练习 十六进制转八进制

    def huan n n format int n 16 o print n x int input for i in range 1 x 1 n input huan n format o 将数据格式化为八进制 int n 16 返回字符
  • 攻防世界 pwn cgfsb writeup

    攻防世界pwn cgfsb 这一题是关于格式化字符串漏洞的题 是一个单一漏洞题 不需要太多的绕过 拿到题目首先查看一下保护 可以看到 这是一个32位的程序 并且开启了Canary保护和NX保护 我们看一下IDA 进入IDA 按下F5可以得到
  • 字节跳动最爱考的前端面试题:CSS 基础

    注意 每道题前面出现的 xx 数字代表这道题出现的频次 此 CSS 基础是基于 30 篇前端面经整理出的问题和对应的回答 参考链接等 文章内容为拿到 Offer 的本人整理 2 写代码 css div 垂直水平居中 并完成 div 高度永远
  • 【Ubuntu+python2】编译并运行PyQt5程序

    文章目录 前言 一 环境搭建 1 下载sip和PyQt5 2 移除本机自带sip 二 解压编译 1 sip解压编译 2 PyQt5解压编译 make j4编译过程出现报错error waitForEvents is not a member
  • springBoot 统一返回结果类

    统一返回结果类有很多 个人感觉这种好用 记录一下 为以后 copy 准备 package com xxxx pro common import lombok Data import java util ArrayList import ja
  • 安装cmake过程出错:Error when bootstrapping CMake: Cannot find a C++ compiler that supports both C++11 and ...

    Error when bootstrapping CMake Cannot find a C compiler that supports both C 11 and the specified C flags 1 没有装gcc 和 g 2
  • javaFX环境配置

    javaFX环境配置 JavaFx在JDK1 8之后从JDK中脱离了出来 由于明天开始今天决定复现一下课本中出现的程序 哪料环境都被苟了一手 其实配置过程很简单 主要分成三个步骤 第一步 官网下载系统对应的JDK javaFX依赖包 第二步
  • 字符串转换时间,时区问题

    1 字符串转化为时间 解决了关于相差8个小时的时区问题 NSString dateStr 2012 05 17 11 23 23 NSDateFormatter format NSDateFormatter alloc init forma
  • TP5使用predis

    1 安装 composer require predis predis 2 使用 use use Predis Client class Index 使用predis public function index 配置连接的IP 端口 以及相
  • 【数据结构】树的遍历

    Ctrl AC 一起 AC 目录 树有三种表示方法 树的遍历有三种 结点结构 树的前序遍历递归版 树的后序遍历递归版 按前序遍历顺序建立一颗树 树的层次遍历 树有三种表示方法 双亲表示法 孩子表示法和兄弟表示法 这里我们使用指针式的孩子表示
  • Unity震撼首发,最新一代高清数字人短片《Enemies》

    我们屡获殊荣的 Demo 团队又一次在 异教徒 The Heretic 累积了超 400 万观众 的基础上取得了进展 推出了 Enemies 一支全新的电影式预告片 以 4K 分辨率的实时渲染来展示眼睛 头发和皮肤渲染等方面的重大突破 创建
  • 大逃杀显示服务器崩溃,绝地求生大逃杀崩溃问题汇总 崩溃问题及完美解决方案...

    国外的游戏在中国的电脑和配置上玩起来都会有点卡顿的 闪退或者崩溃的情况都是常有的 那么在玩游戏中崩溃了怎么办呢 大家赶紧来看看绝地求生大逃杀崩溃问题汇总 崩溃问题及完美解决方案 前提准备 关闭杀毒 游戏使用BE反作弊系统 杀毒软件可能会拦截
  • 网址,URL,域名,IP地址,DNS,域名解析,只为你能成功访问

    计算机网络 计算机专业必修科目之一 是专业课 但是 很多的人除了进入浏览器 输入网址 然后回车就看到页面了 然后往下操作 基本没怎么关注过它的原理 但是 你回车之后 网络内部真的是发生了很多的事情 只是你不知道 今天 我就带大家解开网络的神
  • Android平台GB28181设备接入侧(编码前

    在之前 我有写过Android平台GB28181设备接入模块的好多blog 包括参数设置 功能支持与扩展等 以数据接入为例 支持的数据类型涉及编码前 编码后或直接流数据 RTSP或RTMP流 可用于如智能监控 智慧零售 智慧教育 远程办公
  • HTTPRunner学习笔记

    HttpRunner 是一款面向 HTTP S 协议的通用测试框架 只需编写维护一份 YAML JSON 脚本 即可实现自动化测试 性能测试 线上监控 持续集成等多种测试需求 在yaml文件中组织测试用例 在命令行执行 参考 HTTPRun
  • Wazuh agent的安装、注册与配置管理

    部署Wazuh Agent常用的环境变量 Linux系统下的常用环境变量 WAZUH MANAGER WAZUH MANAGER PORT WAZUH PROTOCOL WAZUH REGISTRATION SERVER WAZUH REG
  • vue 3 第三十四章:nextTick

    nextTick是Vue3中的一个非常有用的函数 它可以在下一次DOM更新循环结束后执行回调函数 这个函数可以用来解决一些异步更新视图的问题 例如在修改数据后立即获取更新后的DOM节点 以下是一个简单的示例
  • BUUCTF【Web】Exec(命令执行漏洞)

    在进入靶场后发现窗口ping 猜测可能是SQL注入 也有可能是命令执行漏洞 我们先随便ping一下本机地址127 0 0 1 发现有回显 PING 127 0 0 1 127 0 0 1 56 data bytes 既然有回显那么就可以确定
  • 前端做excel的录入解析,将excel的数据传给后端,显示在页面上。

    具体的流程如图所示 1 点击excel录入按钮 2 打开弹框 3 点击上传按钮 会自动打开计算机本地文件 选择想上传的文件 点击打开 4 会将excel的数据解析成一个表格 可以在表格中做删除操作 点击确定 5 将excel的人员与系统中的
  • Redis cluster集群搭建

    通过三台虚拟机搭建一个3主3从的cluster集群 1 安装 gcc c 依赖包 yum install gcc c 2 下载安装包并解压 wget https download redis io releases redis 6 0 9