当前位置: 代码网 > it编程>数据库>Redis > redis-cli命令行工具的使用小结

redis-cli命令行工具的使用小结

2025年01月20日 Redis 我要评论
redis-cli命令行工具是一个功能强大的redis客户端,它允许用户与redis数据库进行交互和管理。以下是一些常用参数的使用说明:基本连接参数-h, --host <hostname>

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=1
redis-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
then
    t=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-cli命令行工具的使用的文章就介绍到这了,更多相关redis-cli使用内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

  • Redis主从复制的原理分析

    Redis主从复制的原理分析

    redis主从复制的原理主从复制概述在现代分布式系统中,redis作为一款高性能的内存数据库,其主从复制功能是确保数据高可用性和扩展性的关键技术之一。通过主从复... [阅读全文]
  • Redis缓存异常之缓存雪崩问题解读

    缓存异常:缓存雪崩、击穿、穿透当发生缓存雪崩或击穿时,数据库中还是保存了应用要访问的数据。缓存击穿,缓存更数据库中都没有应用要访问的数据。1.缓存雪崩1.1了解缓存雪崩是指大量的应…

    2025年01月16日 数据库
  • Redis哨兵机制的使用详解

    一.哨兵机制基本解读主库发生故障了,如何不间断的服务?哨兵模式:有效的解决主从库自动切换的关键机制在redis中如果从库发生故障了,客户端可以继续向主库和其他从库发消息,进行相关操…

    2025年01月16日 数据库
  • Redis中切片集群详解

    一.切片集群redis中,数据增多了,是该加内存还是加实例?采用云主机来运行 redis 实例,那么,该如何选择云主机的内存容量呢?用 redis 保存 5000 万个键值对,每个…

    2025年01月16日 数据库
  • Redis过期键删除策略解读

    Redis过期键删除策略解读

    1.redis使用两种不同的策略来删除过期键,分别是惰性删除策略和定期删除策略1.1惰性删除策略当一个过期键被访问时,redis会检查这个键是否过期。如果过期,... [阅读全文]
  • Redis中跳表的实现原理分析

    Redis中跳表的实现原理分析

    redis中跳表的实现原理跳表: 主要通过多重链表实现,最底层包含所有元素,上层都是底层元素的跳跃索引,每一层的元素是从下一层中随机选择的,通常使用概率算法来决... [阅读全文]

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com