Redis Stack 安装部署

参考:Run Redis Stack on Docker | Redis

Redis-stack 初体验_redis stack-CSDN博客

【docker】运行redis_docker run redis-stack-server requirepass-CSDN博客

Redis Stack 是一组软件套件,它主要由三部分组成。

一个是 Redis Stack Server,一个是 RedisInsight,一个是 Redis Stack 客户端 SDK。

其中 Redis Stack Server 由 Redis,RedisSearch,RedisJSON,RedisGraph,RedisTimeSeries 和 RedisBloom 组成。

二、通过docker安装redis-stack

要通过Docker安装Redis Stack,请按照以下步骤进行操作:

选择一个Docker镜像:

  • redis/redis-stack 镜像包含了Redis Stack服务器和RedisInsight。此容器最适合本地开发环境,因为您可以直接使用内嵌的RedisInsight来可视化您的数据。

  • redis/redis-stack-server 提供仅包含Redis Stack服务器的镜像。此容器更适合生产环境部署。

以下是使用Docker安装Redis Stack的具体步骤:

安装Redis Stack(包括RedisInsight):

针对redis/redis-stack镜像:

拉取最新版本的Redis Stack镜像,包含Redis Stack服务器与RedisInsight

docker pull redis/redis-stack

镜像下载较慢 请耐心等待

docker run -d --name redis-stack -p 6379:6379 -p 8001:8001 redis/redis-stack:latest

docker run -d --name my-redis-stack -p 8001:8001 -p 6379:6379 -v /path/to/data:/data/redis_data redis/redis-stack

# 其中:
# --name my-redis-stack:为容器指定一个名称

# -d 后台运行

# -p 8001:8001:将主机的8001端口映射到容器的8001端口,供RedisInsight使用
# -p 6379:6379:将主机的6379端口映射到容器的6379端口,供Redis Stack服务器使用
# -v /path/to/data:/data/redis_data :将主机上的指定目录挂载为容器内的/data目录,用于持久化数据(根据实际情况调整路径)

打开浏览器,输入 http://localhost:8001 ,即可使用RedisInsight管理Redis Stack实例

http://192.168.1.243:8001/redis-stack/browser

仅安装Redis Stack服务器:

针对redis/redis-stack-server镜像:

# 拉取最新版本的仅包含Redis Stack服务器的镜像
docker pull redis/redis-stack-server

# 启动Redis Stack服务器容器,附带必要的配置选项(例如端口映射、持久化卷等)
docker run --name my-redis-stack-server -p 6379:6379 -v /path/to/data:/data redis/redis-stack-server

# 其中:
# --name my-redis-stack-server:为容器指定一个名称
# -p 6379:6379:将主机的6379端口映射到容器的6379端口,供Redis Stack服务器使用
# -v /path/to/data:/data:将主机上的指定目录挂载为容器内的/data目录,用于持久化数据(根据实际情况调整路径)

# 管理Redis Stack服务器
您可以使用外部的Redis客户端(如redis-cli)连接到本机的6379端口进行管理,或者在生产环境中搭配独立部署的RedisInsight进行远程监控与管理

环境变量

要传递任意配置更改,您可以通过设置以下环境变量来实现:

  • REDIS_ARGS:Redis的额外参数

  • REDISEARCH_ARGS:搜索和查询功能(RediSearch)的参数

  • REDISJSON_ARGS:JSON(RedisJSON)的参数

  • REDISTIMESERIES_ARGS:时间序列(RedisTimeSeries)的参数

  • REDISBLOOM_ARGS:概率数据结构(RedisBloom)的参数

这些环境变量允许您在启动Redis Stack时为各个组件提供特定的配置参数。当运行Docker容器时,可以使用-e--env标志来设置这些环境变量,如下所示:

docker run --name my-redis-stack -p 8001:8001 -p 6379:6379 -v /path/to/data:/data \ -e REDIS_ARGS="your_redis_args" \ -e REDISEARCH_ARGS="your_redi_search_args" \ -e REDISJSON_ARGS="your_redis_json_args" \ -e REDISTIMESERIES_ARGS="your_redis_timeseries_args" \ -e REDISBLOOM_ARGS="your_redis_bloom_args" \ redis/redis-stack

请将your_redis_argsyour_redi_search_argsyour_redis_json_argsyour_redis_timeseries_argsyour_redis_bloom_args替换为您需要传递给相应组件的实际参数值。参数应遵循各自组件的命令行接口约定,通常以空格分隔。

例如,如果您希望为Redis配置密码保护,并为RediSearch启用日志记录,可以这样设置环境变量:

docker run --name my-redis-stack -p 8001:8001 -p 6379:6379 -v /path/to/data:/data \ -e REDIS_ARGS="--requirepass your_password" \ -e REDISEARCH_ARGS="--verbose" \ redis/redis-stack

redis-cli访问

docker exec -it my-redis-stack redis-cli

INCR mycounter

`redis-cli INCR mycounter` 是一条在 Redis 命令行界面(CLI)中执行的命令,用于对名为 `mycounter` 的键(key)进行原子性递增操作。具体解释如下:

1. **`redis-cli`**: 这是 Redis 客户端工具,它提供了一个交互式命令行环境,允许用户直接与 Redis 服务器通信,发送命令并接收响应。在命令行中输入 `redis-cli` 后回车,将进入 Redis CLI 的交互模式,可以在这里输入 Redis 命令并立即得到执行结果。

2. **`INCR`**: 这是一个 Redis 原语命令,用于对存储在 Redis 中的整数值进行原子性递增。当应用于某个键时,它会查找该键是否存在以及其当前值是否为整数。如果键不存在,则创建该键并将其值初始化为 `1`。如果键已存在且其值为整数,`INCR` 命令将该值加 `1` 并更新键的值。整个递增过程是原子性的,意味着在任何情况下,即使有多个客户端同时尝试对同一键执行 `INCR`,Redis 也能保证递增操作的完整性,不会出现竞态条件导致的数据不一致。

3. **`mycounter`**: 这是待递增的键名(key)。在 Redis 中,键通常是字符串标识符,用于关联一个特定的数据项。在这个例子中,`mycounter` 被用作一个计数器的键名,表示我们想要维护一个名为 `mycounter` 的计数器,每次执行 `INCR` 命令时,该计数器的值就会递增 `1`。

综上所述,执行 `redis-cli INCR mycounter` 命令的效果是:

- 如果 `mycounter` 键之前不存在,命令执行后,该键会被创建,并设置其值为 `1`。
- 如果 `mycounter` 键已经存在且其值为整数(如 `n`),命令执行后,该键的值将被更新为 `n + 1`。

这种递增操作常用于实现计数、统计访问量、累计积分、商品库存减量等场景,特别是在高并发环境下,由于其原子性特性,能够确保计数的准确性和一致性,无需担心并发请求导致的计数错误。

Redis CLI(命令行界面)

Redis CLI 是 Redis 官方提供的命令行工具,用于与 Redis 服务器进行交互,执行命令、查看数据以及进行调试。以下是 Redis CLI 的概述及主要功能:

**基本功能与交互模式**

1. **交互式操作**:默认情况下,运行 `redis-cli` 命令会进入交互式模式,提供一个类似终端的环境,用户可以在此输入 Redis 命令并立即看到执行结果。Redis CLI 内置了基本的行编辑能力,如退格删除、光标移动、历史命令检索等,为用户提供熟悉的输入体验。

2. **非交互式操作**:若要在命令行一次性执行一个或多个 Redis 命令而不进入交互模式,可以在 `redis-cli` 后跟所需执行的命令,用空格分隔。例如:
   ```bash
   redis-cli SET key value GET key
   ```

**特殊启动模式与选项**

除了基本的交互式和非交互式使用外,Redis CLI 提供多种启动选项以支持特殊操作模式:

1. **模拟副本(replica)**:使用 `-r` 或 `--repl` 选项,Redis CLI 可以模拟一个 Redis 副本节点,并打印从主节点接收到的复制流。这对于调试复制问题或理解复制协议非常有用。

   示例:
   ```bash
   redis-cli -h <primary_host> -p <primary_port> --repl
   ```

2. **延迟检测**:使用 `--latency` 选项,Redis CLI 可以检查 Redis 服务器的延迟情况,并显示相关统计信息。这有助于评估服务器性能和识别潜在的延迟问题。

   示例:
   ```bash
   redis-cli --latency
   ```

3. **ASCII 艺术延迟频谱图**:在延迟检测的基础上,添加 `--latency-history` 选项,Redis CLI 会生成一个基于 ASCII 艺术的延迟样本频率分布图(spectrogram)。这种可视化方式有助于直观地观察延迟随时间的变化趋势和模式。

   示例:
   ```bash
   redis-cli --latency --latency-history
   ```

**其他高级功能**

1. **连接选项**:通过 `-h`(主机)、`-p`(端口)、`-a`(密码)等选项指定要连接的 Redis 服务器地址、端口和密码。

2. **批量执行**:使用 `-x` 选项可以一次性发送多条命令(通过换行分隔),适用于脚本或批处理场景。

3. **管道(pipelining)**:通过 `-n` 选项可以启用管道模式,批量发送命令并一次性接收所有响应,提高网络效率。

4. **格式化输出**:使用 `--raw`、`--csv`、`--pretty` 等选项控制命令输出的格式,便于与其他程序集成或进行进一步数据分析。

5. **Lua 脚本执行**:可以直接在 Redis CLI 中编写和执行 Lua 脚本,利用 Redis 的 Lua 脚本功能进行更复杂的数据操作。

总之,Redis CLI 是一个功能丰富、易用的工具,不仅能满足日常的 Redis 数据操作需求,还提供了诸多高级功能和特殊模式,助力开发者进行调试、性能分析和自动化任务执行。随着对 Redis CLI 的深入了解和熟练使用,您将能更高效地管理和操作 Redis 数据库。

docker exec -it my-redis-stack redis-cli INCR mycounter > /tmp/output.txt

注意,由于 redis-cli 检测到输出不再写入终端,因此输出中省略了 `(integer)`。即使在终端上,您也可以使用 `--raw` 选项强制获得原始输出:

```bash
$ redis-cli --raw INCR mycounter
9
```

当向文件写入或通过管道将输出传递给其他命令时,您可以使用 `--no-raw` 选项强制生成人类可读的输出。

其他命令参考: Redis CLI | Redis

The string 127.0.0.1:6379> is the prompt. It displays the connected Redis server instance's hostname and port.

当进行重新连接时,redis-cli 会自动重新选择上次所选的数据库编号。然而,关于连接的所有其他状态都会丢失,比如在 MULTI/EXEC 事务内部的状态:

Clients :Jedis guide | Redis

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

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

相关文章

艺术点亮新乡村--博罗县“村ART“乡村艺术创作大赛圆满落幕

三月的博罗大地春意盎然,处处洋溢着勃勃生机。在这万物复苏、欣欣向荣的美好时节,一场由农民自编自演、自导自绘的乡村文化盛宴在古朴幽静的徐田村徐徐拉开帷幕。由博罗县委宣传部倾情指导,县文联、文广旅体局、文明办通力合作,泰康保险集团鼎力承办的"村ART"乡村艺术…

AI技术创业:探索无限商机与创新之路

AI技术创业在当前数字化时代呈现出蓬勃发展的态势&#xff0c;为创业者提供了广阔的机会和无限的可能性。随着AI技术的不断进步和应用领域的拓展&#xff0c;从智能家居到自动驾驶&#xff0c;从医疗健康到金融服务&#xff0c;几乎每一个行业都在积极拥抱AI&#xff0c;寻求创…

多功能知识付费源码下载-实现流量互导多渠道变现(带详细安装教程)

资源变现类产品的许多优势&#xff0c;并剔除了那些无关紧要的元素&#xff0c;使得本产品在运营和变现能力方面实现了质的飞跃。多领域素材资源知识变现营销裂变独立版本。 支持&#xff1a;视频、音频、图文、文档、会员、社群、用户发布、创作分成、任务裂变、流量主、在线…

MySQL DBA 需要了解一下 InnoDB Online DDL 算法更新

在 MySQL 8.0.12 中&#xff0c;我们引入了一种新的 DDL 算法&#xff0c;该算法在更改表的定义时不会阻塞表。第一个即时操作是在表格末尾添加一列&#xff0c;这是来自腾讯游戏的贡献。 然后在 MySQL 8.0.29 中&#xff0c;我们添加了在表中任意位置添加&#xff08;或删除&…

14种建模语言(UML)图形

前言 UML 中有四种关系&#xff1a;依赖、关联、泛化和实现。这四种关系是 UML 模型中可以包含的基本关系事物。这里介绍14种UML图形:类图&#xff0c;对象图&#xff0c;包图&#xff0c;构件图&#xff0c;组合结构图&#xff0c;部署图&#xff0c;制品图&#xff0c;用例图…

sql之每日五题day02--多表联查/聚合函数/多值判断/函数

sql之每日五题day01--多表联查/聚合函数 where和group by同时出现分别查看&结果不去重--union allunion all细节别名case when多值判断数据处理函数 where和group by同时出现 SQL24 统计每个用户的平均刷题数 仅查看山东大学的用户在不同难度下的每个用户的平均答题题目数…

DNDC模型对所有处理的土壤温度和湿度模拟效果良好,但有时土壤湿度模拟存在偏差

使用 DNDC 模型评估加拿大多样化作物轮作系统对产量和 N2O 排放的影响 原名&#xff1a;Assessing the impacts of diversified crop rotation systems on yields and nitrous oxide emissions in Canada using the DNDC model 译名&#xff1a;使用 DNDC 模型评估加拿大多样…

爬虫逆向实战(39)-某某兔装修网登陆(RSA)

一、数据接口分析 主页地址&#xff1a;某某兔装修网 1、抓包 通过抓包可以发现登陆是表单提交 2、判断是否有加密参数 请求参数是否加密&#xff1f; 通过查看“载荷”模块&#xff0c;可以发现有一个val和password的加密参数 请求头是否加密&#xff1f; 无响应是否加密…

vue 实现自定义分页打印 window.print

首先这里是我自定义了打印界面才实现的效果&#xff0c;如果不用自定义界面实现&#xff0c;应该是一样的吧。具体可能需要自己去试试看 我的需求是界面有两个表格&#xff0c;点击全部打印&#xff0c;我需要把第一表格在打印是第1页&#xff0c;第二个表格是第二页 如图&…

大宋咨询(深圳舆情监控)政府舆情调查介绍

公众舆论调查旨在收集和分析普通大众对各种主题和问题的观点、态度和意见&#xff0c;它可以帮助政府部门了解公众的意见和情绪&#xff0c;为政策制定和决策提供参考。这些调查旨在了解人群的集体情绪和偏好&#xff0c;并提供公众舆论的见解。 公众舆论调查可以涵盖广泛的主…

SmartChart的部署以及可能遇见的报错解决方案

简介 数据可视化是一种将数据转化为图形的技术&#xff0c;可以帮助人们更好地理解和分析数据。但是&#xff0c;传统的数据可视化开发往往需要编写大量的代码&#xff0c;或者使用复杂的拖拽工具&#xff0c;不仅耗时耗力&#xff0c;而且难以实现个性化的需求。有没有一种更…

pytorch中的while for 循环 导出onnx的问题

问题&#xff1a; for执行次数不跟据输入而改变。 解决方案&#xff1a; torch.jit.script 例如&#xff1a; class LoopAdd(torch.nn.Module):def __init__(self):super().__init__()def forward(self, x):h xfor i in range(x.size(0)):h h 1return h input_1 torch…

Sora是什么 Sora怎么使用OpenAI最新文字转视频AI模型Sora,一句子生成60秒超逼画面

1. 背景介绍 随着人工智能技术的不断发展&#xff0c;自然语言处理&#xff08;NLP&#xff09;和计算机视觉&#xff08;CV&#xff09;技术已经取得了显著的进步。近年来&#xff0c;将文本转换为视频的技术逐渐成为研究的热点。OpenAI最新推出的文字转视频AI模型Sora&#…

983. 最低票价 C++

class Solution { public:int mincostTickets(vector<int>& days, vector<int>& costs) {// 状态定义&#xff1a; f[i] 表示 i 天及之后 旅行所需的最小花费int f[366]{};// 标注哪些天 出门for (int v: days) f[v] 1;// 由于状态转移是逆向的 所以倒序 …

号称史上最全的PostgreSQL备份恢复,送给有缘人...

&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&#x1f61c;&#x1f61c; 中国DBA联盟(ACD…

ftp在linux部署及其安装

安装ftp服务 yum install -y vsftpd 查看一下是否安装成功 rpm -qa |grep ‘vsftpd’ ftp的配置文件主要有三个&#xff0c;位于/etc/vsftpd/目录下&#xff0c;分别是&#xff1a; ftpusers&#xff1a;用来指定哪些用户不能访问ftp服务器 user_list:&#xff1a;这个文…

java的Math类,System类,Runtime类和BigDemical类常用的API

Math类&#xff1a; 代表数学&#xff0c;是一个工具类&#xff1b; public static int abs(int a) Returns the absolute value of an int value. If the argument is not negative, the argument is returned. If the argument is negative, the negation of the argument i…

​慧天[HTWATER]可以与与SWMM模型之间实现转换吗?

​慧天[HTWATER]软件简介 针对城市排水系统基础设施数据管理的需求&#xff0c;以及水文、水力及水质模拟对数据的需求&#xff0c;实现了以数据库方式对相应数据的存储。可以对分流制排水系统及合流制排水系统进行地表水文、管网水力、水质过程的模拟计算。可以对城市低影响开…

SwiftUI Swift 显示隐藏系统顶部状态栏

Show me the code // // TestHideSystemTopBar.swift // pandabill // // Created by 朱洪苇 on 2024/4/1. //import SwiftUIstruct TestHideSystemTopBar: View {State private var isStatusBarHidden falsevar body: some View {Button {withAnimation {self.isStatusBa…

有单片机基础,准备过一遍freertos,之后再学linux

应届生我觉得继续把单片机深入一下比较好。 站在公司的角度思考一下&#xff0c;个人觉得应该有以下结论&#xff1a; 1 大公司具备技术资金等优势&#xff0c;因此喜欢学历好&#xff0c;理论扎实能够攻坚的人。倾向于培养各个领域的专家&#xff0c;共同构建自己产品的竞争…