【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.

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

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

相关文章

Asp .Net Core 实现微服务:集成 Ocelot+Nacos+Swagger+Cors实现网关、服务注册、服务发现

什么是 Ocelot ? Ocelot是一个开源的ASP.NET Core微服务网关&#xff0c;它提供了API网关所需的所有功能&#xff0c;如路由、认证、限流、监控等。 Ocelot是一个简单、灵活且功能强大的API网关&#xff0c;它可以与现有的服务集成&#xff0c;并帮助您保护、监控和扩展您的…

性价比1.2V电压基准替代

前言&#xff1a; 小于2V的电压基准比较少&#xff0c;且价格稍贵&#xff0c;对于要求不高的场合&#xff0c;1117可以替代使用&#xff0c;温度系数低于 100ppm/C, 价格便宜。 1117是线性稳压器的一种&#xff0c;一般情况下&#xff0c;输出电压可调。 如下述的1117&#xf…

使用 Java 和 FreeMarker 实现自动生成供货清单,动态生成 Word 文档,简化文档处理流程。

在上一篇博客中主要是使用SpringBootApache POI实现了BOM物料清单Excel表格导出&#xff0c;详见以下博客&#xff1a; Spring Boot Apache POI 实现 Exc&#xff08;&#xff09;el 导出&#xff1a;BOM物料清单生成器&#xff08;支持中文文件名、样式美化、数据合并&#…

探索与创作:2024年CSDN平台上的成长与突破

文章目录 我与CSDN的初次邂逅初学阶段的阅读CSDN&#xff1a;编程新手的避风港初学者的福音&#xff1a;细致入微的知识讲解考试复习神器&#xff1a;技术总结的“救命指南”曾经的自己&#xff1a;为何迟迟不迈出写博客的第一步兴趣萌芽&#xff1a;从“读”到“想写”的初体验…

SSM课设-学生管理系统

【课设者】SSM课设-学生管理系统 技术栈: 后端: SpringSpringMVCMybatisMySQLJSP 前端: HtmlCssJavaScriptEasyUIAjax 功能: 学生端: 登陆 学生信息管理 个人信息管理 老师端: 多了教师信息管理 管理员端: 多了班级信息管理 多了年级信息管理 多了系统用户管理

力扣 打家劫舍

动态规划&#xff0c;当前状态由前两个状态获得&#xff0c;滚动数组。 题目 从题可以看出要达到最高金额时&#xff0c;要从相邻的房屋拿。因此是当前房屋的金额隔一个做累加&#xff0c;当然还需要跟前一个相邻的房屋做比较&#xff0c;便于取到哪边金额更高&#xff0c;因此…

【Django开发】django美多商城项目完整开发4.0第12篇:商品部分,表结构【附代码文档】

本教程的知识点为&#xff1a; 项目准备 项目准备 配置 1. 修改settings/dev.py 文件中的路径信息 2. INSTALLED_APPS 3. 数据库 用户部分 图片 1. 后端接口设计&#xff1a; 视图原型 2. 具体视图实现 用户部分 使用Celery完成发送 判断帐号是否存在 1. 判断用户名是否存在 后…

Redis的安装和使用--Windows系统

Redis下载地址&#xff1a; windows版本readis下载&#xff08;GitHub&#xff09;&#xff1a; https://github.com/tporadowski/redis/releases &#xff08;推荐使用&#xff09; https://github.com/MicrosoftArchive/redis/releases 官网下载&#xff08;无Windows版本…

Linux操作命令之云计算基础命令

一、图形化界面/文本模式 ctrlaltF2-6 图形切换到文本 ctrlalt 鼠标跳出虚拟机 ctrlaltF1 文本切换到图形 shift ctrl "" 扩大 ctrl "-" 缩小 shift ctrl "n" 新终端 shift ctrl "t" 新标签 alt 1,…

LabVIEW桥接传感器配置与数据采集

该LabVIEW程序主要用于配置桥接传感器并进行数据采集&#xff0c;涉及电压激励、桥接电阻、采样设置及错误处理。第一个VI&#xff08;"Auto Cleanup"&#xff09;用于自动清理资源&#xff0c;建议保留以确保系统稳定运行。 以下是对图像中各个组件的详细解释&#…

网络编程 | UDP广播通信

1、什么是广播 在上一篇博客文章中已经对UDP进行了详细的说明介绍及如何编程实现。本文将接着上一文的内容&#xff0c;在其基础上&#xff0c;对UDP的知识体系进一步深入的讲解。 网络编程 | UDP套接字通信及编程实现经验教程-CSDN博客 例子&#xff1a;在一些中小学的操场中&…

Count Sketch--计数草图

背景 Count Sketch 是一种空间高效的概率型数据结构&#xff0c;由 Moses Charikar、Kevin Chen 和 Martin Farach-Colton 在 2002 年提出&#xff0c;用于估计数据流中元素的频率&#xff0c;也可用于解决重击者问题。 原理 算法结构 参数设定&#xff1a;Count Sketch算法…

2025.1.17——三、SQLi regexp正则表达式|

题目来源&#xff1a;buuctf [NCTF2019]SQLi1 目录 一、打开靶机&#xff0c;整理信息 二、解题思路 step 1&#xff1a;正常注入 step 2&#xff1a;弄清关键字黑名单 1.目录扫描 2.bp爆破 step 3&#xff1a;根据过滤名单构造payload step 4&#xff1a;regexp正则注…

搭建一个基于Spring Boot的书籍学习平台

搭建一个基于Spring Boot的书籍学习平台可以涵盖多个功能模块&#xff0c;例如用户管理、书籍管理、学习进度跟踪、笔记管理、评论和评分等。以下是一个简化的步骤指南&#xff0c;帮助你快速搭建一个基础的书籍学习平台。 — 1. 项目初始化 使用 Spring Initializr 生成一个…

【Linux 之一 】Linux常用命令汇总

Linux常用命令 ./catcd 命令chmodclearcphistoryhtoplnmkdirmvpwdrmtailunamewcwhoami 我从2021年4月份开始才开始真正意义上接触Linux&#xff0c;最初学习时是一脸蒙圈&#xff0c;啥也不会&#xff0c;啥也不懂&#xff0c;做了很多乱七八糟&#xff0c;没有条理的笔记。不知…

Hexo + NexT + Github搭建个人博客

文章目录 一、 安装二、配置相关项NexT config更新主题主题样式本地实时预览常用命令 三、主题设置1.侧边栏2.页脚3.帖子发布字数统计 4.自定义自定义页面Hexo 的默认页面自定义 404 页自定义样式 5.杂项搜索服务 四、第三方插件NexT 自带插件评论系统阅读和访问人数统计 五、部…

开发神器之cursor

文章目录 cursor简介主要特点 下载cursor页面的简单介绍切换大模型指定ai学习的文件指定特定的代码喂给ai创建项目框架文件 cursor简介 Cursor 是一款专为开发者设计的智能代码编辑器&#xff0c;集成了先进的 AI 技术&#xff0c;旨在提升编程效率。以下是其主要特点和功能&a…

当前目录不是一个git仓库/远程仓库已经有了一些你本地没有的更改

目录 问题1&#xff1a;问题2&#xff1a;解决1解决2 问题1&#xff1a; fatal: not a git repository (or any parent up to mount point /) Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set). # 初始化 Git 仓库 git init需要到本地目录下先添加…

差异基因富集分析(R语言——GOKEGGGSEA)

接着上次的内容&#xff0c;上篇内容给大家分享了基因表达量怎么做分组差异分析&#xff0c;从而获得差异基因集&#xff0c;想了解的可以去看一下&#xff0c;这篇主要给大家分享一下得到显著差异基因集后怎么做一下通路富集。 1.准备差异基因集 我就直接把上次分享的拿到这…

BGP边界网关协议(Border Gateway Protocol)路由引入、路由反射器

一、路由引入背景 BGP协议本身不发现路由&#xff0c;因此需要将其他协议路由&#xff08;如IGP路由等&#xff09;引入到BGP路由表中&#xff0c;从而将这些路由在AS之内和AS之间传播。 BGP协议支持通过以下两种方式引入路由&#xff1a; Import方式&#xff1a;按协议类型将…