linux redis部署教程

单节点部署:

单节点部署 Redis 非常简单,只需要在一台服务器上安装 Redis 服务即可。以下是在 Linux 环境下的单节点部署步骤:

安装 Redis:打开终端,并执行以下命令来更新软件包列表并安装 Redis 服务器:
sudo apt update
sudo apt install redis-server

配置 Redis:

Redis 的配置文件通常位于 /etc/redis/redis.conf。你可以使用文本编辑器(如 nano 或 vim)打开该文件,并根据需要进行配置更改。

sudo nano /etc/redis/redis.conf

在配置文件中,你可以设置 Redis 的监听地址、端口、认证密码等选项。确保根据你的需求进行相应配置,并保存文件。

例如,你可以修改以下选项来允许远程连接和设置认证密码:

bind 0.0.0.0         # 允许远程连接
requirepass your_password   # 设置认证密码

启动 Redis:

完成配置后,启动 Redis 服务:

sudo systemctl start redis

如果需要在系统启动时自动启动 Redis,可以执行以下命令:

sudo systemctl enable redis

验证 Redis 是否正常运行:

你可以使用以下命令检查 Redis 服务是否正在运行:

sudo systemctl status redis

如果一切正常,你应该能够看到 Redis 服务处于运行状态。

连接到 Redis:

你可以使用 redis-cli 命令行工具连接到 Redis 服务器,并进行操作:

redis-cli -h your_server_ip -p your_port -a your_password

替换 your_server_ip、your_port 和 your_password 为实际的服务器 IP 地址、端口和密码。

现在,你已经成功部署了单节点的 Redis 服务,并可以使用它来存储和管理数据。


主从复制部署:

Redis 主从复制部署是一种常见的配置,可以提高系统的读取性能和可用性。在主从复制中,主节点负责写入数据,而从节点则复制主节点的数据并提供读取服务。以下是在 Linux 环境下进行 Redis 主从复制部署的步骤:

准备服务器:在你的网络环境中准备两台服务器,一台作为主节点(Master),另一台作为从节点(Slave)。确保服务器之间可以相互通信,并且防火墙配置允许 Redis 端口(默认为 6379)的访问。安装 Redis:在两台服务器上安装 Redis 服务器。可以使用以下命令在 Ubuntu 上安装:
sudo apt update
sudo apt install redis-server

配置主节点:

打开主节点的 Redis 配置文件 /etc/redis/redis.conf,并进行如下配置:

bind 0.0.0.0             # 允许远程连接
port 6379                # 默认端口
daemonize yes            # 在后台运行
requirepass your_password     # 设置认证密码
masterauth your_master_password   # 主节点密码

确保替换 your_password 和 your_master_password 为实际的密码。

配置从节点:

同样地,打开从节点的 Redis 配置文件 /etc/redis/redis.conf,并进行如下配置:

bind 0.0.0.0
port 6379
daemonize yes
requirepass your_password
masterauth your_master_password
slaveof master_ip master_port   # 指定主节点的 IP 地址和端口

确保替换 your_password 和 your_master_password 为实际的密码,以及将 master_ip 和 master_port 替换为主节点的 IP 地址和端口号。

启动 Redis:

在主从节点上分别启动 Redis 服务:

sudo systemctl start redis

验证主从复制:

连接到主节点的 Redis 服务器,并设置一些键值对:

redis-cli -h master_ip -p 6379 -a your_password
set mykey myvalue

然后连接到从节点的 Redis 服务器,并检查键值对是否被复制:

redis-cli -h slave_ip -p 6379 -a your_password
get mykey

如果从节点返回了与主节点相同的值,则表示主从复制已成功。

现在,你已经成功地部署了 Redis 主从复制配置。主节点将负责写入数据,而从节点则复制主节点的数据以提供读取服务。


Sentinel高可用部署:

Redis Sentinel 是 Redis 的高可用解决方案,它监视 Redis 实例,并在主节点发生故障时自动执行故障转移操作。以下是在 Linux 环境下进行 Redis Sentinel 高可用部署的步骤:

准备服务器:在你的网络环境中准备至少三台服务器,每台服务器上都要安装 Redis。一台作为主节点(Master),另外两台作为 Sentinel 节点(可以增加更多的 Sentinel 节点以提高可靠性)。确保服务器之间可以相互通信,并且防火墙配置允许 Redis 端口(默认为 6379)和 Sentinel 端口(默认为 26379)的访问。安装 Redis:在每台服务器上安装 Redis 服务器。可以使用以下命令在 Ubuntu 上安装:
sudo apt update
sudo apt install redis-server

配置主节点:

在主节点的 Redis 配置文件 /etc/redis/redis.conf 中进行如下配置:

bind 0.0.0.0
port 6379
daemonize yes
requirepass your_password

确保替换 your_password 为实际的密码。

配置 Sentinel 节点:

在两个 Sentinel 节点的配置文件 /etc/redis/sentinel.conf 中进行如下配置:

bind 0.0.0.0
port 26379
daemonize yes
sentinel monitor mymaster master_ip 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 10000
sentinel auth-pass mymaster your_password

确保替换 master_ip 为主节点的 IP 地址,并将 your_password 替换为实际的主节点密码。这里的 sentinel monitor 指令用于指定要监视的 Redis 实例,sentinel down-after-milliseconds 指令用于设置 Sentinel 认为主节点失效所需的毫秒数,sentinel failover-timeout 指令用于设置 Sentinel 在进行故障转移前等待的毫秒数。

启动 Redis 和 Sentinel:

分别在主节点和 Sentinel 节点上启动 Redis 和 Sentinel 服务:

sudo systemctl start redis
sudo systemctl start redis-sentinel

验证 Sentinel 高可用:

可以使用以下命令连接到 Sentinel 节点并查看监视状态:

redis-cli -h sentinel_ip -p 26379
sentinel masters

如果一切正常,你应该能够看到 Sentinel 监视的主节点的信息。

现在,你已经成功地部署了 Redis Sentinel 高可用解决方案。 Sentinel 将监视主节点的状态,并在主节点发生故障时执行自动故障转移操作,以保证 Redis 服务的可用性。


集群部署:

以下是 Redis 集群部署的步骤,你可以按照这些步骤进行部署:

准备服务器:准备至少 6 台服务器,每台服务器上都要安装 Redis。确保服务器之间可以相互通信,并且防火墙配置允许 Redis 端口(默认为 6379)的访问。安装 Redis:在每台服务器上安装 Redis 服务器。可以使用以下命令在 Ubuntu 上安装:
sudo apt update
sudo apt install redis-server

配置 Redis 集群:

在每台服务器上的 Redis 配置文件 /etc/redis/redis.conf 中进行如下配置:

bind 0.0.0.0
port 6379
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
cluster-announce-ip your_ip_address
cluster-announce-port 6379
cluster-announce-bus-port 16379

确保替换 your_ip_address 为实际的 IP 地址。这里的 cluster-enabled 指令用于启用集群模式,cluster-config-file 指令用于指定集群配置文件的位置,cluster-node-timeout 指令用于设置节点超时时间,cluster-announce-ip、cluster-announce-port 和 cluster-announce-bus-port 指令用于指定节点在集群中的通信地址。

启动 Redis 服务:

在每台服务器上启动 Redis 服务:

sudo systemctl start redis

创建 Redis 集群:

使用 redis-cli 命令创建 Redis 集群。首先,在任一一台服务器上执行以下命令创建集群:

redis-cli --cluster create node1_ip:6379 node2_ip:6379 ... node6_ip:6379 --cluster-replicas 1

替换 node1_ip、node2_ip 等为实际的服务器 IP 地址。–cluster-replicas 1 参数表示为每个主节点创建一个从节点。

验证 Redis 集群:

连接到 Redis 集群并执行一些命令来验证集群是否正常工作:

redis-cli -c -h any_node_ip -p 6379

然后尝试执行一些 Redis 命令,例如 set、get 等,确保它们正常工作。

现在,你已经成功地部署了 Redis 集群。你可以通过访问任意一个节点来访问整个集群,并且 Redis 会自动进行数据分片和故障转移以保证高可用性和可扩展性。

nodes.conf介绍:

当你启用 Redis 集群时,集群状态信息会被保存在一个名为 nodes.conf 的配置文件中。这个文件通常位于 Redis 的工作目录下。例如,在 Ubuntu 系统上,Redis 的工作目录通常是 /var/lib/redis。

你可以通过以下命令找到 nodes.conf 文件的具体位置:

sudo find / -name nodes.conf

在默认情况下,如果你按照常规方式安装 Redis,nodes.conf 文件应该位于 /var/lib/redis 目录下。但是,如果你修改了 Redis 的配置文件中的 cluster-config-file 指令,那么文件可能会位于你指定的位置。

注意:不建议手动修改 nodes.conf 文件,因为这个文件是由 Redis 集群自动生成和维护的,手动修改可能导致不可预料的问题。

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

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

相关文章

29、链表-删除链表的倒数第N个结点

思路: 首先找到倒数第N个结点 第一种方式 先统计链表的节点数,然后再次遍历len-N即可得到倒数第N个结点,然后将前一个节点的next指针指向next的下一个节点使用快慢指针,快指针先跑N个结点然后慢指针开始跑,等快指针到达尾节点后…

多因子模型的因子选取

经典的Alpha模型是一些多因子模型,用于预测Alpha模型的信息比率,从而来判断判断模型的好坏。这里我们所说的信息比率是相对收益率除以非系统性风险,所以当我们在进行因子选择的时候,我们一定不能选取系统性风险模型(例…

免费VPS云服务器汇总,最长永久免费使用

目前云服务器市场竞争很激烈,为了方便吸引上云,很多云计算服务商提供免费试用云服务器,下面给大家整理汇总一下免费VPS云服务器,最长永久免费使用! 一、雨云(优惠码:ABC) 活动地址:…

jquery如何在当前元素的前面添加一个同级子元素

在jQuery中,如果你想在当前元素的前面添加一个同级子元素,你可以使用.before()方法。但是,请注意,.before()方法实际上是在当前元素的前面插入内容,而不是作为它的子元素。如果你想在当前元素内部、但在其所有子元素之…

2D AI交互数字人:赋能文旅、金融、政务、教育行业数字化转型

AI交互数字人结合了语音合成、语音识别、语义理解、图像处理、机器翻译、虚拟形象驱动等多项AI核心技术,可以提供服务导览、业务咨询、语音互动交流、信息播报等智能服务。 其中,2D AI交互数字人是采集真人视频,通过AI训练,生成逼…

认识OpenEuler操作系统

引言 在信息技术日新月异的时代,开源软件已成驱动创新的核心动能,其中,OpenEuler作为一款冉冉升起的开源操作系统典范,凭借其对开源精神的坚守与技术创新的不懈追求,自亮相以来便引发了全球关注。本文将全方位深挖Open…

Xcode 15.0 新 #Preview 预览让 SwiftUI 界面调试更加悠然自得

概览 从 Xcode 15 开始,苹果推出了新的 #Preview 宏预览机制,它无论从语法还是灵活性上都远远超过之前的预览方式。#Preview 不但可以实时预览 SwiftUI 视图,而且对 UIKit 的界面预览也是信手拈来。 想学习新 #Preview 预览的一些超实用调试…

使用新一代一站式 AI Bot 开发平台扣子coze,搭建我的第一个AI Bot(前端魔法师) ,

目录 1.概述​ 2.功能与优势 3.使用扣子 4.人设与回复逻辑 5.添加插件 6.预览与调试 7.发布bot Store 8.环境大家体验(给大家内置了比较屌的插件) 9.推荐阅读: 1.概述​ 扣子是新一代一站式 AI Bot 开发平台。无论你是否有编程基础…

揭示API威胁的攻击趋势(下)

文章目录 前言三、行业趋势凸显供应链攻击危险1、案例研究2、API成为新的数据泄露载体四、提高可见性:管理API资产生命周期的关键1、照亮阴影2、实现文档化3、强化API态势4、加强威胁检测和响应5、发展更强大的进攻性方法前言 API是组织数字化转型的核心。然而,API的存在也增…

iOS------SDWebImage源码

一,简介 一个异步图片下载及缓存的库 特性: 一个扩展UIImageView分类的库,支持加载网络图片并缓存图片异步图片下载器异步图片缓存和自动图片有效期限管理支持GIF动态图片支持WebP背景图片减压保证同一个URL不会再次下载保证无效的URL不会…

Web前端 Javascript笔记3

1、垃圾回收机制 内存中的生命周期 1、内存分配 2、内存使用(读写) 3、内存回收,使用完毕之后,垃圾回收器完成 内存泄漏:该回收的,由于某些未知因素,未释放,叫做内存泄漏 栈&#xf…

构建CICD

由于公司要求构建自己的CICD流程,基于公司内部搭建的服务平台去搭建自动打包流程,在这个过程中遇到了几个节点记录一下。 公司内部号称有自己的一套软管平台,实际内核都是基于Jekins的一套机制,不同的是有些参数可以自定义&#…

leetcode46--全排列

题目 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2: 输入:…

Vue新手入门

1 Vue概述 官网:https://cn.vuejs.org/ 1、什么是Vue.js Vue.js 是目前最火的一个前端框架,React是最流行的一个前端框架(React除了开发网站,还可以开发手机App, Vue语法也是可以用于进行手机App开发的,需要借助于W…

C语言数组的初始化方法大全

在C语言中,数组初始化主要有以下几种方法: 1.完全初始化:在声明数组的同时给出数组所有元素的值。 int arr[5] {1, 2, 3, 4, 5}; // 初始化一个整型数组 2.部分初始化:只给数组的前面一部分元素赋值&am…

Bridge 桥接

意图 将抽象部分与其显示部分分离,使他们都可以独立地变化。 结构 其中: Abstraction定义抽象类的接口,维护一个指向Implementer类型对象的指针。RefinedAbstraction扩展由Abstraction定义的接口。Implementor定义实现类的接口&#xff0c…

React 19 的新增功能:Action Hooks

React 是前端开发领域最流行的框架之一。我喜欢 React 是因为它背后的团队和社区对它的热情。当社区提出新功能和改进的需求时,团队会倾听,React 的未来是令人兴奋和有趣的。 让我们来看一下 React 19 中令开发人员提升开发效率的新特性。对于每个钩子&…

关于项目打包

除了自己常用的那种方式,也可以直接在文件夹下执行命令。 如果当前项目聚合了其他子模块的话: 先清理,再打包,同时跳过测试 如果打包后,然后项执行某个模块,进入当前文件夹下直接java -jar 和jar包名执行就…

C++中的vector容器

一. 基本概念 1. 包含在头文件 #include <vector> 2. 功能: 模拟了一个动态数组 3. 底层实现 首先开辟一定大小的数组 随着元素的增加&#xff0c;如果空间不够之后 自动采取扩容机制 -> 自增长 扩容规则&#xff1a;以原空间大小的 2 倍重新开辟一块空间 将就空…

【SpinalHDL】Scala编程中的class及case class

本篇文章仅简单介绍在spinalhdl编程中遇到的比较常见的2中类定义方式&#xff1a;class及case class。对于不太了解JAVA或Scala编码又开始学习SpinalHDL的人进行入门介绍。 在 SpinalHDL 中&#xff0c;case class 和 class 都是用来定义数据结构或对象的关键字&#xff0c;它…