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

【redis】redis-cli命令行工具的使用

redis-cli命令行工具是一个功能强大的Redis客户端,它允许用户与Redis数据库进行交互和管理。

以下是一些常用参数的使用说明:

基本连接参数

  • -h, --host <hostname>:指定要连接的Redis服务器的主机名或IP地址。如果未指定,则默认为127.0.0.1(即本地主机)。

  • -p, --port <port>:指定要连接的Redis服务器的端口号。如果未指定,则默认为6379,这是Redis的默认端口。

  • -a, --password <password>:指定连接Redis服务器所需的密码。如果Redis服务器设置了密码保护,则需要使用此参数来提供密码。

  • -n, --db <db>:指定要连接的Redis数据库编号。Redis默认提供16个数据库(编号从0到15),通过此参数可以选择要连接的数据库。

基本连接方式

如果你在本地运行Redis服务器,且使用默认端口(6379),可以在终端中直接输入redis-cli来连接。

例如:

$ redis-cli
127.0.0.1:6379>

连接远程服务器

如果Redis服务器在远程主机上,你需要指定主机名或IP地址以及端口号。

例如,假设远程Redis服务器的IP地址是192.168.1.100,端口为6379,你可以使用以下命令连接:

$ redis-cli -h 192.168.1.100 -p 6379
192.168.1.100:6379>

其中-h参数用于指定主机(host),-p参数用于指定端口(port)。

带密码连接

如果Redis服务器设置了密码保护,你可以使用-a参数来提供密码。例如,密码为mypassword,连接命令如下:

$ redis-cli -h 192.168.1.100 -p 6379 -a mypassword
192.168.1.100:6379>

不过这种方式在命令行历史记录中会显示密码,存在一定的安全风险。

更安全的做法是先通过不带密码的方式连接,然后使用AUTH命令进行认证。例如:

$ redis - cli -h 192.168.1.100 -p 6379
192.168.1.100:6379> AUTH mypassword
OK

操作与格式参数

  • -r, --repeat <count>:指定要重复执行命令的次数。这个参数可以与-i参数一起使用,以实现定时重复执行命令的功能。

  • -i, --interval <seconds>:设置命令执行的间隔时间(以秒为单位)。这个参数通常与-r参数一起使用,用于控制命令的重复执行速率。

  • -x:从标准输入(stdin)读取最后一个参数。这允许用户从管道或其他输入源中读取数据,并将其作为命令的参数传递给redis-cli。

  • --raw / --no-raw:控制命令输出的格式。使用–raw参数可以以原始格式打印Redis的返回结果,包括数据类型和值。而–no-raw则恢复为默认的输出格式。

  • --csv:以CSV(逗号分隔值)格式打印返回结果。这有助于将Redis的输出导入到电子表格或其他支持CSV格式的应用程序中。

-r参数重复执行命令

含义:-r参数用于指定命令执行的次数。这在需要多次执行相同命令时非常有用,例如对某个操作进行压力测试或者批量插入数据等情况。

示例:假设要将键my_r的值设置为一个自增的数字,重复执行5次。可以使用以下命令:

$ redis-cli -r 5 incr my_r
(integer) 1
(integer) 2
(integer) 3
(integer) 4
(integer) 5

-i参数指定命令间隔时间

含义:-i参数用于指定每次命令执行之间的间隔时间,单位是秒。它通常与-r参数一起使用,当需要以一定的时间间隔多次执行命令时可以用到。

示例:以下命令会每隔1秒执行一次incr my_i命令,共执行5次。

$ redis-cli -r 5 -i 1 incr my_i
(integer) 1
(integer) 2
(integer) 3
(integer) 4
(integer) 5

-x参数读取标准输入

含义:用于从标准输入(stdin)读取数据作为最后一个参数的值。这在处理比较长或复杂的数据(如大型字符串、二进制数据等)时非常有用,使得可以通过管道或其他方式将数据传递给redis-cli命令,而不是直接在命令行中输入冗长的数据。

$ echo hello | redis-cli -x set hi
OK$ redis-cli get hi
"hello\n"

echo会将hello输出到标准输出,通过管道|将标准输出的内容作为set命令的值(由于-x参数的存在),set命令会将这个值存储到键hi中。

–raw/–no-raw控制命令输出格式

含义:用于以原始格式(raw format)显示数据。默认情况下在输出一些数据类型(如哈希、列表、集合等)时,会对它们进行格式化,以便于阅读。但是,在某些情况下,你可能希望获取数据的确切字节表示,或者将数据直接用于脚本处理,这时就可以使用–raw选项。

$ redis-cli hgetall student_scores
1) "Alice"
2) "95"
3) "Bob"
4) "85"
5) "Charlie"
6) "100"$ redis-cli --raw hgetall student_scores
Alice
95
Bob
85
Charlie
100$ redis-cli --no-raw hgetall student_scores
1) "Alice"
2) "95"
3) "Bob"
4) "85"
5) "Charlie"
6) "100"

–csv以CSV格式打印返回结果

含义:将命令的输出格式化为CSV(逗号分隔值)格式。CSV是一种常用的数据交换格式,特别适用于在电子表格软件(如 Microsoft Excel、Google Sheets)或数据库系统之间导入和导出数据。

$ redis-cli --csv hgetall student_scores
"Alice","95","Bob","85","Charlie","100"

高级功能参数

  • --scan <pattern>:执行SCAN命令以遍历Redis中的所有键。可以配合COUNT参数来控制每次迭代的数量。与KEYS命令相比,SCAN命令是增量式的,不会阻塞Redis服务器。

  • --bigkeys:在Redis服务器上执行SCAN命令以查找大键。这有助于分析Redis的内存使用情况,并识别出占用大量内存的键。

  • --rdb <filename>:指定Redis数据库的RDB文件进行导出。这允许用户备份Redis数据库。

  • --slave:以从节点模式连接Redis服务器。这通常用于设置Redis复制和从节点管理。

  • --pipe:使用管道模式发送Redis命令。这可以加快大批量命令的执行速度,特别适用于数据迁移或批量更新等场景。

  • --eval <script> <keys> [args]:执行指定的Lua脚本。这个参数允许用户在Redis服务器上运行自定义的Lua脚本,以实现复杂的逻辑操作和数据处理。

  • --latency:在Redis服务器上执行PING命令以获取延迟信息。这有助于监控Redis服务器的性能和响应时间。

  • --stat:打印Redis服务器的统计信息。这包括内存使用情况、命令处理速率等关键指标,有助于用户了解Redis服务器的运行状态。

按key迁移redis脚本:

#!/bin/bash
source_host="127.0.0.1"
source_port=6379
source_db=0
destination_host="127.0.0.1"
destination_port=6379
destination_db=1redis-cli -h $source_host -p $source_port -n $source_db keys "*" | while read key
do
t=`redis-cli -h $source_host -p $source_port -n $source_db --raw ttl $key`
if test $t -eq -1
thent=0
fi
redis-cli -h $source_host -p $source_port -n $source_db --raw -D dump $key | redis-cli -h $destination_host -p $destination_port -n $destination_db -x restore $key $t
echo "migrate key $key"
done

使用--rdb备份redis:

$ redis-cli --rdb redis.rdb
sending REPLCONF capa eof
sending REPLCONF rdb-only 1
SYNC sent to master, writing 205 bytes to 'redis.rdb'
Transfer finished with success.

相关文章:

【redis】redis-cli命令行工具的使用

redis-cli命令行工具是一个功能强大的Redis客户端&#xff0c;它允许用户与Redis数据库进行交互和管理。 以下是一些常用参数的使用说明&#xff1a; 基本连接参数 -h, --host <hostname>&#xff1a;指定要连接的Redis服务器的主机名或IP地址。如果未指定&#xff0c;…...

使用Matplotlib显示中文的方法

1 问题提出 使用图1所示的代码进行matplotlib绘图时&#xff0c;因为其默认不支持中文&#xff0c;此时无法显示正确内容&#xff0c;如图2所示。 图1 matplotlib绘图绘图代码 图2 matplotlib无法显示中文 2 问题解决 2.1 设置全局字体 在图1所示的代码中&#xff0c;第13…...

SQL Server2022详细安装教程

1. 打开SQL Server官网&#xff1a;SQL Server 下载 | Microsoft 2. 选择Developer版 3. 下载好安装包&#xff0c;打开&#xff0c;选择自定义 4. 选择下载位置&#xff0c;最好不要在C盘即主磁盘即可。等待下载 5. 下载成功之后会弹出这个框 6. 点击“安装”&#…...

家里温度随心控,假期出行更舒适~

春节假期马上到来啦&#xff01;这是放松身心、陪伴家人的最佳时机~      但旅途结束的温差变化、空气质量问题是否让你有些担忧呢&#xff1f;      别担心&#xff01;有了约克VRF中央空调&#xff0c;让你的假期更加舒心无忧~      清新空气&#xff0c;自在出游…...

压力测试详解

压力测试 压力测试是一种软件测试&#xff0c;用于验证软件应用程序的稳定性和可靠性。压力测试的目标是在极其沉重的负载条件下测量软件的健壮性和错误处理能力&#xff0c;并确保软件在危急情况下不会崩溃。它甚至可以测试超出正常工作点的测试&#xff0c;并评估软件在极端…...

从epoll事件的视角探讨TCP:三次握手、四次挥手、应用层与传输层之间的联系

目录 一、应用层与TCP之间的联系 二、 当通信双方中的一方如客户端主动断开连接时&#xff0c;仅是在客户端的视角下连接已经断开&#xff0c;在服务端的眼中&#xff0c;连接依然存在&#xff0c;为什么&#xff1f;——触发EPOLLRDHUP事件&#xff1a;对端关闭连接或停止写…...

Redis复制(replica)

Redis主从复制 [Redis主从复制]&#xff08;replica&#xff09;是一个多Redis实例进行数据同步的过程&#xff0c;其中一个实例是主实例&#xff08;Master&#xff09;&#xff0c;其他实例是从实例&#xff08;Slave&#xff09;。主实例负责处理命令请求&#xff0c;而从实…...

[云讷科技] 用于软件验证的仿真环境

我们使用Pursuit自动驾驶仪为各种场景设计仿真环境&#xff0c;以便用户可以在模拟环境中直接验证他们的软件&#xff0c;无需现场测试。该环境基于Gazebo引擎。 1. 工作区目录 模拟环境的工作区位于提供的U盘中的~/pursuit_space/sitl_space_pursuit中。用户可以按照用户手册…...

使用 Vite 和 Vue 框架创建组件库

在前端开发中&#xff0c;组件化开发已成为一种高效、可维护的方式。通过创建组件库&#xff0c;不仅可以提高代码复用率&#xff0c;还能方便地在不同项目之间共享组件。本文将详细介绍如何使用 Vite 和 Vue 框架创建一个组件库&#xff0c;并将其导出供其他项目使用。为保持一…...

【数据结构学习笔记】19:跳表(Skip List)

介绍 跳表是一个能在 O ( n l o g n ) O(nlogn) O(nlogn)时间完成查找、插入、删除的数据结构&#xff0c;相比于树形结构优点就是很好写&#xff08;所以也用于实现Redis ZSet&#xff09;。其核心思想就是维护一个元素有序的&#xff0c;能随机提升索引层数的链表。最下面一…...

【8】深入理解 Go 语言中的协程-从基础到高级应用

文章目录 一、引言 &#x1f31f;二、协程基础概念 &#x1f9d0;&#xff08;一&#xff09;什么是协程&#xff08;二&#xff09;协程与线程、进程的区别三、协程的创建与启动 &#x1f680;&#xff08;一&#xff09;使用 go 关键字创建协程&#xff08;二&#xff09;简单…...

深入理解 ECMAScript 2024 新特性:字符串 isWellFormed 方法

ECMAScript 2024 引入了一个新的字符串实例方法&#xff1a;String.prototype.isWellFormed。这一新增功能是为了帮助开发者更容易地验证字符串是否为有效的 Unicode 文本。本文将详细介绍这一方法的使用场景、实现原理及其在实际应用中的价值。 String.prototype.isWellFormed…...

算法分析与设计之贪心算法

文章目录 前言一、Greedy Algorithms1.1 贪心选择性质1.2 最优子结构性质1.3 正确性证明 二、典型例题2.1 Interval Scheduling间隔调度2.2 Interval Partitioning最少间教室排课2.3 Selecting Breakpoints选择加油站停靠点2.4 硬币找零2.5 Scheduling to Minimizing Lateness2…...

Centos 宝塔安装

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh 安装成功界面 宝塔说明文档 https://www.bt.cn/admin/servers#wcu 或者可以注册宝塔账号 1 快速部署 安装docker 之后 2 需要在usr/bin下下载do…...

蓝桥与力扣刷题(709 转换成小写字母)

题目&#xff1a;给你一个字符串 s &#xff0c;将该字符串中的大写字母转换成相同的小写字母&#xff0c;返回新的字符串。 示例 1&#xff1a; 输入&#xff1a;s "Hello" 输出&#xff1a;"hello"示例 2&#xff1a; 输入&#xff1a;s "here…...

Redis的过期策略、内存淘汰机制

Redis只能存5G数据&#xff0c;可是你写了10G&#xff0c;那会删5G的数据。怎么删的&#xff1f;还有&#xff0c;你的数据已经设置了过期时间&#xff0c;但是时间到了&#xff0c;为什么内存占用率还是比较高? 一、Redis的过期策略 Redis采用的是定期删除惰性删除策略。 1…...

视觉多模态大模型---MiniMax-vl-01---以闪电般的注意力缩放基础模型

简介 MiniMax-VL-01 是与今年1月15日由上海稀宇科技有限公司&#xff08;MiniMax&#xff09;发布并开源的一款视觉多模态大模型&#xff0c;它与基础语言大模型 MiniMax-Text-01 一同构成了 MiniMax-01 系列。这款模型的设计初衷是为了应对日益增长的长上下文处理需求&#x…...

【微服务】面试 3、 服务监控 SkyWalking

微服务监控的原因 问题定位&#xff1a;在微服务架构中&#xff0c;客户端&#xff08;如 PC 端、APP 端、小程序等&#xff09;请求后台服务需经过网关再路由到各个微服务&#xff0c;服务间可能存在多链路调用。当某一微服务挂掉时&#xff0c;在复杂的调用链路中难以迅速确定…...

【案例81】NMC调用导致数据库的效率问题

问题现象 客户在使用NC系统时&#xff0c;发现系统特别卡顿。需要紧急排查。 问题分析 排查NMC发现&#xff0c;所有的线程都处于执行SQL层面&#xff0c;说明数据库当前出现了异常。查看数据库资源状态发现&#xff0c;Oracle相关进程CPU利用率达到了100%。 查看现在数据库…...

Linux_信号

信号的概念 && 知识补充 信号是进程之间事件异步通知的一种方式&#xff0c;是一种软中断。 标准信号&#xff1a;编号为1-31之间都是标准信号&#xff0c;这些都是预定义信号&#xff0c;用于通知进程发生的各种事件。实时信号&#xff1a;编号从32开始起均是实时信号…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...