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"乡村艺术…

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

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

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;第二个表格是第二页 如图&…

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

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

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

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

​慧天[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;共同构建自己产品的竞争…

金三银四求职季,最新面试题分享和解析,建议收藏

随着金三银四招聘旺季的到来&#xff0c;在这个竞争激烈的时刻&#xff0c;了解最新的软件测试面试题&#xff0c;充分准备面试&#xff0c;对求职者来说显得尤为重要。本文将分享一些金三银四期间最新的软件测试面试题&#xff0c;帮助求职者更好地应对面试挑战。 一.登录页面…

企业如何通过AARRR模型完成快速扩张?

在竞争激烈的市场环境中&#xff0c;企业要想实现持续的用户增长&#xff0c;就需要采用一套有效的策略和模型。AARRR模型→&#xff08;【1日1词】AARRR用户增长模型--互联网运营经典模型&#xff09;是一个帮助企业实现用户增长的有效方法。下面将详细阐述企业在营销运营过程…

OpenHarmony实战开发-如何通过Stage模型实现一个简单的游戏卡片

介绍 本示例展示了如何通过Stage模型实现一个简单的游戏卡片。 通过卡片支持的点击事件进行交互&#xff0c;让用户通过点击的先后顺序把一个乱序的成语排列成正确的成语。使用了C和TS的混合编程方式&#xff0c;将获取随机数的能力下沉到C实现&#xff0c;并通过NAPI的能力将…

Adaboost集成学习 | Matlab实现基于GRU-Adaboost门控循环单元结合Adaboost集成学习时间序列预测(股票价格预测)

目录 效果一览基本介绍模型设计程序设计参考资料效果一览 基本介绍 Adaboost集成学习 | Matlab实现基于GRU-Adaboost门控循环单元结合Adaboost集成学习时间序列预测(股票价格预测) 模型设计 股票价格预测是一个具有挑战性的时间序列预测问题,可以使用深度学习模型如门控循环…

常用运动模型

运动模型 常用运动模型: CV、CA、CTRV、CTRV、CTRA、CSAV和CCA/CSAA模型微分多项式模型辛格模型半马尔科夫模型机动目标"当前模型"二维转弯运动模型三维模型比列导引模型 恒定速度模型&#xff08;Constant Velocity, CV&#xff09; 恒定加速度模型&#xff08;C…

websocket 局域网 webrtc 一对一 多对多 视频通话 的示例

基本介绍 WebRTC&#xff08;Web Real-Time Communications&#xff09;是一项实时通讯技术&#xff0c;它允许网络应用或者站点&#xff0c;在不借助中间媒介的情况下&#xff0c;建立浏览器之间点对点&#xff08;Peer-to-Peer&#xff09;的连接&#xff0c;实现视频流和&am…

【算法刷题day14】Leetcode:144.二叉树的前序遍历、94.二叉树的中序遍历、145.二叉树的后序遍历

文章目录 二叉树递归遍历解题思路代码总结 二叉树的迭代遍历解题思路代码总结 二叉树的统一迭代法解题思路代码总结 草稿图网站 java的Deque 二叉树递归遍历 题目&#xff1a; 144.二叉树的前序遍历 94.二叉树的中序遍历 145.二叉树的后序遍历 解析&#xff1a;代码随想录解析…

mongodb的简单操作

文章目录 前言数据库的创建和删除集合的创建和删除文档的插入和查询异常处理更新数据局部修改符合条件的批量更新加操作 删除文档删除全部数据删除符合条件的数据 统计count统计有多少条数据统计特定条件有多少条数据 分页查询排序查询正则查询比较查询包含查询条件连接查询索引…