当前位置: 首页 > news >正文

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

相关文章:

Redis Stack 安装部署

参考&#xff1a;Run Redis Stack on Docker | Redis Redis-stack 初体验_redis stack-CSDN博客 【docker】运行redis_docker run redis-stack-server requirepass-CSDN博客 Redis Stack 是一组软件套件&#xff0c;它主要由三部分组成。 一个是 Redis Stack Server&#x…...

【经典算法】LeetCode 5: 最长回文子串(Java/C/Python3实现含注释说明,Medium)

目录 题目描述思路及实现方式一&#xff1a;动态规划法思路代码实现Java版本C语言版本Python3版本 复杂度分析 方式二&#xff1a;中心扩展法思路代码实现Java版本C语言版本Python3版本 复杂度分析 总结相似题目 标签(题目类型)&#xff1a;回文串、动态规划 题目描述 给定一…...

39.Python从入门到精通—parseString 方法 Python 解析XML实例 使用xml.dom解析xml

39.Python从入门到精通—parseString 方法 Python 解析XML实例 使用xml.dom解析xml parseString 方法Python 解析XML实例使用xml.dom解析xml parseString 方法 parseString 方法是 Python 标准库中 xml.dom.minidom 模块中的一个函数&#xff0c;用于解析 XML 字符串并构建 DO…...

【蓝桥杯第九场小白赛】(部分)

最近写的零零散散的&#xff0c;感觉这两天遇到的题对于短时间提升意义已经不大了&#xff0c;还是做简单题保持手感吧哎 盖印章 #include <iostream> using namespace std; using LLlong long; int main() {ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);LL n,m…...

【Linux】Supervisor 基础

要在Linux上启动Supervisor&#xff0c;你可以按照以下步骤进行操作&#xff1a; 确保你已经安装了Supervisor。使用适合你的Linux发行版的包管理器进行安装。例如&#xff0c;对于Ubuntu&#xff0c;可以运行以下命令安装Supervisor&#xff1a; sudo apt-get update sudo apt…...

48 全连接卷积神经网络 FCN【动手学深度学习v2】

全连接卷积神经网络&#xff1a;神经网络处理语义分割问题的奠基性工作&#xff0c;目前已不太常用。 了解一下全卷积网络模型最基本的设计。 如 下图所示&#xff0c;全卷积网络先使用卷积神经网络抽取图像特征&#xff0c;然后通过11卷积层将通道数变换为类别个数&#xff0…...

pytorch中的nn.MSELoss()均方误差损失函数

一、nn.MSELoss()是PyTorch中的一个损失函数&#xff0c;用于计算均方误差损失。 均方误差损失函数通常用于回归问题中&#xff0c;它的作用是计算目标值和模型预测值之间的平方差的平均值。 具体来说&#xff0c;nn.MSELoss()函数的输入是两个张量&#xff0c;即模型的真实值…...

三国游戏(贪心 排序)

三国游戏 利用贪心、排序、前缀和的计算方法&#xff0c;特别注意不要数据溢出了&#xff0c;sum 加long long s[i] x[i]-y[i]-z[i]输入: 3 1 2 2 2 3 2 1 0 7输出: 2#include <bits/stdc.h> using namespace std;const int N 1e5100;typedef long long ll;bool cm…...

GPU环境安装与虚拟环境安装(适用于Windows下的李沐GPU)

之前我是用的都是VMware的虚拟机且安装的是cpu的pytorch版本,因为想要使用GPU,最终实现了在Windows上使用GPU,并且相关原理也在参考文章或视频内,可以通过原理自行挑选自己所需的配置并安装。 文章目录 1.GPU安装1.1 名词解释1.2 卸载旧版本的CUDA1.3 版本选择步骤(Nivida显卡…...

Http Download

Http / Https 下载文件&#xff0c;startWith不能验证https&#xff0c;测试地址&#xff1a;https://storage.googleapis.com/golang/go1.7.3.windows-amd64.msi private static final Logger logger Logger.getLogger(MethodHandles.lookup().lookupClass());private static…...

【Android】Glide加载SVG,SVG转PNG

Dependency plugins {id kotlin-kapt }dependencies {api com.github.bumptech.glide:glide:4.12.0kapt com.github.bumptech.glide:compiler:4.12.0api com.caverock:androidsvg:1.4 }SvgDecoder 负责解码SVG资源 import com.bumptech.glide.load.Options import com.bumpte…...

Spring、SpringMVC、Springboot三者的区别和联系

1.背景 最近有人问面试的一个问题&#xff1a;Spring、SpringMVC、Springboot三者的区别和联系&#xff0c;个人觉得&#xff1a;万变不离其宗&#xff0c;只需要理解其原理&#xff0c;回答问题信手拈来。 2.三者区别和联系 2.1 先了解Spring基础 Spring 框架就像一个家族…...

一点点安全资料:网络安全扩展

协议扩展 加密协议SSL/TLS 简介 SSL&#xff08;Secure Sockets Layer&#xff09;和TLS&#xff08;Transport Layer Security&#xff09;是加密协议&#xff0c;设计用来提供网络通信的安全性和数据完整性。尽管TLS是SSL的后继者&#xff0c;但两者的核心目标相同&#x…...

vscode的源码插件GitHub Repositories

打铁还需自身硬&#xff0c;需要不断提升自我&#xff0c;提升自我的一种方式就是看源码&#xff0c;站在更高的维度去理解底层原理&#xff0c;以便以后更好的开发和解决问题&#xff0c;由于源码一个动不动就是几个G甚至十几个G&#xff0c;如果一个个源码下载下来&#xff0…...

如何定义快速开发平台框架?有何突出优势?

作为提质增效的利器软件&#xff0c;快速开发平台框架如何能在众多同行中取胜&#xff1f;又是凭借什么优势特点在激烈的市场竞争中获得众多客户的青睐与信任&#xff1f;不管是从企业角度、服务商角度&#xff0c;还是使用者的角度来说&#xff0c;做好流程化进程&#xff0c;…...

二分练习题——奶牛晒衣服

奶牛晒衣服 题目分析 这里出现了“弄干所有衣服的最小时间”&#xff0c;那么可以考虑用二分去做。 第一阶段二段性分析 假设当前需要耗费的时间为mid分钟&#xff0c;如果mid分钟内可以烘干这些衣服&#xff0c;那么我们可以确定右边界大于mid的区间一定也可以。但是此时我…...

python工具包【1】 -- 不同操作系统路径转换

python工具包【1】 – 不同操作系统路径转换 以下的工具类的作用是根据不同的操作系统&#xff0c;将代码中的路径转换成适应操作系统的路径。 代码 import osclass Base_Tools_Cls:def BasePathConvert_func(self, path):根据不同的操作系统&#xff0c;将路径进行转换为不…...

JAVA中@FunctionalInterface 注解使用

FunctionalInterface是Java 8引入的一个注解&#xff0c;用于标记一个接口为函数式接口。函数式接口是指只有一个抽象方法&#xff08;除了Object类中的默认方法如equals、hashCode等&#xff09;的接口。在Java 8及以后版本中&#xff0c;函数式接口可以与lambda表达式配合使用…...

【Spring Cloud Alibaba】9 - OpenFeign集成Sentinel实现服务降级

目录 一、简介Sentinel 是什么如何引入Sentinel 二、服务搭建1.安装Sentinel控制台1.1 下载1.2 启动1.3 访问 2.改造服务提供者cloud-provider服务2.1 引入依赖2.2 添加API2.3 添加配置文件 3.改造cloud-consumer-feign服务3.1 引入依赖3.2 添加Feign接口3.3 添加服务降级类3.4…...

Chrome浏览器如何跟踪新开标签的网络请求?

在测试一个东西的时候&#xff0c;它虽然是a链接&#xff0c;但是&#xff0c;是由前端在js里写跳转的。我又必须要知道它的跳转链接&#xff0c;只能用截屏的方式来捕捉浏览器的地址栏链接 打开浏览器控制台(F12)点击红色箭头打钩为弹出式窗口自动打开DevTools 英文版调试参…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化&#xff1a;从政策驱动到多元盈利 政策全面赋能 2025年4月&#xff0c;国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》&#xff0c;首次明确虚拟电厂为“独立市场主体”&#xff0c;提出硬性目标&#xff1a;2027年全国调节能力≥2000万千瓦&#xff0…...

【Linux】自动化构建-Make/Makefile

前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具&#xff1a;make/makfile 1.背景 在一个工程中源文件不计其数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;mak…...

LOOI机器人的技术实现解析:从手势识别到边缘检测

LOOI机器人作为一款创新的AI硬件产品&#xff0c;通过将智能手机转变为具有情感交互能力的桌面机器人&#xff0c;展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家&#xff0c;我将全面解析LOOI的技术实现架构&#xff0c;特别是其手势识别、物体识别和环境…...

MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释

以Module Federation 插件详为例&#xff0c;Webpack.config.js它可能的配置和含义如下&#xff1a; 前言 Module Federation 的Webpack.config.js核心配置包括&#xff1a; name filename&#xff08;定义应用标识&#xff09; remotes&#xff08;引用远程模块&#xff0…...

阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)

cd /home 进入home盘 安装虚拟环境&#xff1a; 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境&#xff1a; virtualenv myenv 3、激活虚拟环境&#xff08;激活环境可以在当前环境下安装包&#xff09; source myenv/bin/activate 此时&#xff0c;终端…...