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_args
、your_redi_search_args
、your_redis_json_args
、your_redis_timeseries_args
和your_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 安装部署
参考: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&#x…...

【经典算法】LeetCode 5: 最长回文子串(Java/C/Python3实现含注释说明,Medium)
目录 题目描述思路及实现方式一:动态规划法思路代码实现Java版本C语言版本Python3版本 复杂度分析 方式二:中心扩展法思路代码实现Java版本C语言版本Python3版本 复杂度分析 总结相似题目 标签(题目类型):回文串、动态规划 题目描述 给定一…...

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 模块中的一个函数,用于解析 XML 字符串并构建 DO…...

【蓝桥杯第九场小白赛】(部分)
最近写的零零散散的,感觉这两天遇到的题对于短时间提升意义已经不大了,还是做简单题保持手感吧哎 盖印章 #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,你可以按照以下步骤进行操作: 确保你已经安装了Supervisor。使用适合你的Linux发行版的包管理器进行安装。例如,对于Ubuntu,可以运行以下命令安装Supervisor: sudo apt-get update sudo apt…...

48 全连接卷积神经网络 FCN【动手学深度学习v2】
全连接卷积神经网络:神经网络处理语义分割问题的奠基性工作,目前已不太常用。 了解一下全卷积网络模型最基本的设计。 如 下图所示,全卷积网络先使用卷积神经网络抽取图像特征,然后通过11卷积层将通道数变换为类别个数࿰…...

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

三国游戏(贪心 排序)
三国游戏 利用贪心、排序、前缀和的计算方法,特别注意不要数据溢出了,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 下载文件,startWith不能验证https,测试地址: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.背景 最近有人问面试的一个问题:Spring、SpringMVC、Springboot三者的区别和联系,个人觉得:万变不离其宗,只需要理解其原理,回答问题信手拈来。 2.三者区别和联系 2.1 先了解Spring基础 Spring 框架就像一个家族…...

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

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

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

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

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

JAVA中@FunctionalInterface 注解使用
FunctionalInterface是Java 8引入的一个注解,用于标记一个接口为函数式接口。函数式接口是指只有一个抽象方法(除了Object类中的默认方法如equals、hashCode等)的接口。在Java 8及以后版本中,函数式接口可以与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浏览器如何跟踪新开标签的网络请求?
在测试一个东西的时候,它虽然是a链接,但是,是由前端在js里写跳转的。我又必须要知道它的跳转链接,只能用截屏的方式来捕捉浏览器的地址栏链接 打开浏览器控制台(F12)点击红色箭头打钩为弹出式窗口自动打开DevTools 英文版调试参…...

html写一个登录注册页面
<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>注册登录界面Ⅰ</title><link rel"stylesheet" href"https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.mi…...

Stable Diffusion|Ai赋能电商 Inpaint Anything
1. 背景介绍 随着人工智能技术的不断发展,其在电商领域的应用也越来越广泛。其中,图像修复技术在电商领域有着重要的应用价值。例如,在商品图片处理中,去除图片中的水印、瑕疵等,可以提高商品图片的质量和美观度。 2…...

启明智显M系列--工业级HMI芯片选型表
本章主要介绍启明智显M系列HMI主控芯片: 纯国产自主, RISC-V 内核,配备强大的 2D 图形加速处理器、PNG/JPEG 解码引擎、H.264解码;工业宽温,提供全开源SDK;1秒快速开机启动的特性,极大地提高了…...

C语言面试题之最小高度树
最小高度树 实例要求 1、给定一个有序整数数组,元素各不相同且按升序排列;2、编写一个算法,创建一棵高度最小的二叉搜索树;示例: 给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它…...

【随笔】Git 高级篇 -- 整理提交记录(上)cherry-pick(十五)
💌 所属专栏:【Git】 😀 作 者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大…...

上门服务小程序|上门服务系统|上门服务软件开发流程
在如今快节奏的生活中,上门服务小程序的需求越来越多。它们向用户提供了方便、高效的服务方式,解决了传统服务行业中的很多痛点。如果你也想开发一个上门服务小程序,以下是开发流程和需要注意的事项。 1、确定需求:在开始开发之前…...

Vuex(vue 项目中实现 频繁、大范围数据共享的技术方案)
参考文档(点击查看) 好处 1.数据的存取一步到位,不需层层传递 2.数据的流动非常清晰 3.存储在Vuex中的数据都是响应式的(数据更新后,使用数据的组件都会自动更新) Vuex基础配置 npm i vuex3.6.2state中用来存储数据,…...

【Spring Cloud】服务容错中间件Sentinel入门
文章目录 什么是 SentinelSentinel 具有以下特征:Sentinel分为两个部分: 安装 Sentinel 控制台下载jar包,解压到文件夹启动控制台访问了解控制台的使用原理 微服务集成 Sentinel添加依赖增加配置测试用例编写启动程序 实现接口限流总结 欢迎来到阿Q社区 …...

算法刷题记录 Day36
算法刷题记录 Day36 Date: 2024.04.02 lc 416. 分割等和子集 //2. 一维数组 class Solution { public:bool canPartition(vector<int>& nums) {// 将问题转化为从数组中任意取数,使得容量为数组总和一半的背包内的价值尽可能大。// dp[j]表示容积为j的…...

面试必问 - CSS 中元素居中小技巧
在网页设计中,居中是一个至关重要的布局技巧,能够确保你的页面在不同设备和屏幕尺寸上呈现出优雅的样式。 在这篇文章中,将介绍一些 CSS 居中的基本技巧,适用于各种场景。 1. 水平居中 文本水平居中 通过设置 text-align: cen…...