• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

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

    发布者: 土豆服务器 | 发布时间: 2025-6-19 12:45| 查看数: 137| 评论数: 0|帖子模式

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

    基本连接参数


      1. -h, --host <hostname>
      复制代码
      :指定要连接的Redis服务器的主机名或IP地址。如果未指定,则默认为127.0.0.1(即本地主机)。
      1. -p, --port <port>
      复制代码
      :指定要连接的Redis服务器的端口号。如果未指定,则默认为6379,这是Redis的默认端口。
      1. -a, --password <password>
      复制代码
      :指定连接Redis服务器所需的密码。如果Redis服务器设置了密码保护,则需要使用此参数来提供密码。
      1. -n, --db <db>
      复制代码
      :指定要连接的Redis数据库编号。Redis默认提供16个数据库(编号从0到15),通过此参数可以选择要连接的数据库。

    基本连接方式

    如果你在本地运行Redis服务器,且使用默认端口(6379),可以在终端中直接输入redis-cli来连接。
    例如:
    1. $ redis-cli
    2. 127.0.0.1:6379>
    复制代码
    连接远程服务器

    如果Redis服务器在远程主机上,你需要指定主机名或IP地址以及端口号。
    例如,假设远程Redis服务器的IP地址是192.168.1.100,端口为6379,你可以使用以下命令连接:
    1. $ redis-cli -h 192.168.1.100 -p 6379
    2. 192.168.1.100:6379>
    复制代码
    其中
    1. -h
    复制代码
    参数用于指定主机(host),
    1. -p
    复制代码
    参数用于指定端口(port)。

    带密码连接

    如果Redis服务器设置了密码保护,你可以使用-a参数来提供密码。例如,密码为mypassword,连接命令如下:
    1. $ redis-cli -h 192.168.1.100 -p 6379 -a mypassword
    2. 192.168.1.100:6379>
    复制代码
    不过这种方式在命令行历史记录中会显示密码,存在一定的安全风险。
    更安全的做法是先通过不带密码的方式连接,然后使用AUTH命令进行认证。例如:
    1. $ redis - cli -h 192.168.1.100 -p 6379
    2. 192.168.1.100:6379> AUTH mypassword
    3. OK
    复制代码
    操作与格式参数


      1. -r, --repeat <count>
      复制代码
      :指定要重复执行命令的次数。这个参数可以与-i参数一起使用,以实现定时重复执行命令的功能。
      1. -i, --interval <seconds>
      复制代码
      :设置命令执行的间隔时间(以秒为单位)。这个参数通常与-r参数一起使用,用于控制命令的重复执行速率。
      1. -x
      复制代码
      :从标准输入(stdin)读取最后一个参数。这允许用户从管道或其他输入源中读取数据,并将其作为命令的参数传递给redis-cli。
      1. --raw / --no-raw
      复制代码
      :控制命令输出的格式。使用–raw参数可以以原始格式打印Redis的返回结果,包括数据类型和值。而–no-raw则恢复为默认的输出格式。
      1. --csv
      复制代码
      :以CSV(逗号分隔值)格式打印返回结果。这有助于将Redis的输出导入到电子表格或其他支持CSV格式的应用程序中。

    -r参数重复执行命令

    含义:-r参数用于指定命令执行的次数。这在需要多次执行相同命令时非常有用,例如对某个操作进行压力测试或者批量插入数据等情况。
    示例:假设要将键my_r的值设置为一个自增的数字,重复执行5次。可以使用以下命令:
    1. $ redis-cli -r 5 incr my_r
    2. (integer) 1
    3. (integer) 2
    4. (integer) 3
    5. (integer) 4
    6. (integer) 5
    复制代码
    -i参数指定命令间隔时间

    含义:-i参数用于指定每次命令执行之间的间隔时间,单位是秒。它通常与-r参数一起使用,当需要以一定的时间间隔多次执行命令时可以用到。
    示例:以下命令会每隔1秒执行一次
    1. incr my_i
    复制代码
    命令,共执行5次。
    1. $ redis-cli -r 5 -i 1 incr my_i
    2. (integer) 1
    3. (integer) 2
    4. (integer) 3
    5. (integer) 4
    6. (integer) 5
    复制代码
    -x参数读取标准输入

    含义:用于从标准输入(stdin)读取数据作为最后一个参数的值。这在处理比较长或复杂的数据(如大型字符串、二进制数据等)时非常有用,使得可以通过管道或其他方式将数据传递给redis-cli命令,而不是直接在命令行中输入冗长的数据。
    1. $ echo hello | redis-cli -x set hi
    2. OK
    3. $ redis-cli get hi
    4. "hello\n"
    复制代码
    echo会将hello输出到标准输出,通过管道|将标准输出的内容作为set命令的值(由于-x参数的存在),set命令会将这个值存储到键hi中。

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

    含义:用于以原始格式(raw format)显示数据。默认情况下在输出一些数据类型(如哈希、列表、集合等)时,会对它们进行格式化,以便于阅读。但是,在某些情况下,你可能希望获取数据的确切字节表示,或者将数据直接用于脚本处理,这时就可以使用–raw选项。
    1. $ redis-cli hgetall student_scores
    2. 1) "Alice"
    3. 2) "95"
    4. 3) "Bob"
    5. 4) "85"
    6. 5) "Charlie"
    7. 6) "100"
    8. $ redis-cli --raw hgetall student_scores
    9. Alice
    10. 95
    11. Bob
    12. 85
    13. Charlie
    14. 100
    15. $ redis-cli --no-raw hgetall student_scores
    16. 1) "Alice"
    17. 2) "95"
    18. 3) "Bob"
    19. 4) "85"
    20. 5) "Charlie"
    21. 6) "100"
    复制代码
    –csv以CSV格式打印返回结果

    含义:将命令的输出格式化为CSV(逗号分隔值)格式。CSV是一种常用的数据交换格式,特别适用于在电子表格软件(如 Microsoft Excel、Google Sheets)或数据库系统之间导入和导出数据。
    1. $ redis-cli --csv hgetall student_scores
    2. "Alice","95","Bob","85","Charlie","100"
    复制代码
    高级功能参数


      1. --scan <pattern>
      复制代码
      :执行SCAN命令以遍历Redis中的所有键。可以配合COUNT参数来控制每次迭代的数量。与KEYS命令相比,SCAN命令是增量式的,不会阻塞Redis服务器。
      1. --bigkeys
      复制代码
      :在Redis服务器上执行SCAN命令以查找大键。这有助于分析Redis的内存使用情况,并识别出占用大量内存的键。
      1. --rdb <filename>
      复制代码
      :指定Redis数据库的RDB文件进行导出。这允许用户备份Redis数据库。
      1. --slave
      复制代码
      :以从节点模式连接Redis服务器。这通常用于设置Redis复制和从节点管理。
      1. --pipe
      复制代码
      :使用管道模式发送Redis命令。这可以加快大批量命令的执行速度,特别适用于数据迁移或批量更新等场景。
      1. --eval <script> <keys> [args]
      复制代码
      :执行指定的Lua脚本。这个参数允许用户在Redis服务器上运行自定义的Lua脚本,以实现复杂的逻辑操作和数据处理。
      1. --latency
      复制代码
      :在Redis服务器上执行PING命令以获取延迟信息。这有助于监控Redis服务器的性能和响应时间。
      1. --stat
      复制代码
      :打印Redis服务器的统计信息。这包括内存使用情况、命令处理速率等关键指标,有助于用户了解Redis服务器的运行状态。
    按key迁移redis脚本:
    1. #!/bin/bash
    2. source_host="127.0.0.1"
    3. source_port=6379
    4. source_db=0
    5. destination_host="127.0.0.1"
    6. destination_port=6379
    7. destination_db=1
    8. redis-cli -h $source_host -p $source_port -n $source_db keys "*" | while read key
    9. do
    10. t=`redis-cli -h $source_host -p $source_port -n $source_db --raw ttl $key`
    11. if test $t -eq -1
    12. then
    13.     t=0
    14. fi
    15. 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
    16. echo "migrate key $key"
    17. done
    复制代码
    使用
    1. --rdb
    复制代码
    备份redis:
    1. $ redis-cli --rdb redis.rdb
    2. sending REPLCONF capa eof
    3. sending REPLCONF rdb-only 1
    4. SYNC sent to master, writing 205 bytes to 'redis.rdb'
    5. Transfer finished with success.
    复制代码
    到此这篇关于redis-cli命令行工具的使用的文章就介绍到这了,更多相关redis-cli使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    来源:https://www.jb51.net/database/334467s8n.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表