zoukankan      html  css  js  c++  java
  • Redis-cli 的功能

    一:非REPL (Read Eval Print Loop) 模式

    通常我们都是使用REPL模式,就是连接端口之后,发一条 request 再等待 response 这样一个loop的形式,如下所示:

    [root@localhost Desktop]# redis-cli -h 192.168.1.216
    192.168.1.216:6379> set username jack
    OK
    192.168.1.216:6379> set password 12345
    OK
    192.168.1.216:6379>

    其实我还可以直接在命令行中使用 redis-cli 再配合各种附加参数,效果和上面是一模一样的,比如下面这样:

    [root@localhost Desktop]# redis-cli -h 192.168.1.216 set username jack
    OK
    [root@localhost Desktop]# redis-cli -h 192.168.1.216 set password 12345
    OK
    [root@localhost Desktop]#

    二:从本地文件中执行命令导入

    你可以把本地文件中的一组redis命令直接导入到 redis-cli 中执行,免去了一行一行键入之苦,对不对,工作量可是大大的减轻了哈,参照下面流程。

    然后用 < 命令导入就可以了,这里216的ip是本地局域网内的一台虚拟机,是不是有点像pipeline管道操作

    [root@localhost Desktop]# redis-cli -h 192.168.1.216 < /usr/1.txt
    OK
    OK
    [root@localhost Desktop]#

    三:对指定的redis命令重复调用

    乍一听貌似没啥业务场景,仔细想想还是有的,比如说不断的调用 info 命令,这就是一个好的监控,对不对?命令格式如下:

    redis-cli -r <count> and -i <delay> command

     其中 -r 是 repeat 的次数,-i 是 delay 的 sencond 的秒数,接下来我演示一下,调用info命令10次,每次延迟1s,如下所示:

    [root@localhost Desktop]# redis-cli -h 192.168.1.216 -r 10 -i 1 INFO
    # Server
    redis_version:3.2.4
    redis_git_sha1:00000000
    redis_git_dirty:0
    redis_build_id:fc9ad9a14d3a0fb5
    redis_mode:standalone
    os:Linux 3.10.0-327.el7.x86_64 x86_64
    arch_bits:64
    multiplexing_api:epoll
    gcc_version:4.8.5
    process_id:6171
    run_id:8d1d5cffbf81e31c6c6e0bd144186e9df9fea482
    tcp_port:6379
    uptime_in_seconds:3536932
    uptime_in_days:40
    hz:10
    lru_clock:5049094
    executable:/etc/redis/redis-server
    config_file:/etc/redis/6379.conf

    # Clients
    connected_clients:7
    client_longest_output_list:0
    client_biggest_input_buf:0
    blocked_clients:0

    # Memory
    used_memory:1295512
    used_memory_human:1.24M
    used_memory_rss:10395648
    used_memory_rss_human:9.91M
    used_memory_peak:35199336
    used_memory_peak_human:33.57M
    total_system_memory:2099109888
    total_system_memory_human:1.95G
    used_memory_lua:37888
    used_memory_lua_human:37.00K
    maxmemory:0
    maxmemory_human:0B
    maxmemory_policy:noeviction
    mem_fragmentation_ratio:8.02
    mem_allocator:jemalloc-4.0.3

    # Persistence
    loading:0
    rdb_changes_since_last_save:0
    rdb_bgsave_in_progress:0
    rdb_last_save_time:1481443658
    rdb_last_bgsave_status:ok
    rdb_last_bgsave_time_sec:0
    rdb_current_bgsave_time_sec:-1
    aof_enabled:0
    aof_rewrite_in_progress:0
    aof_rewrite_scheduled:0
    aof_last_rewrite_time_sec:-1
    aof_current_rewrite_time_sec:-1
    aof_last_bgrewrite_status:ok
    aof_last_write_status:ok
    ...

    这么多输出,有点眼花缭乱,大多时候我只关注 used_memory_human 字段,看看当前 redis 占用了多少内存,这里就可以用grep过滤一下:

    [root@localhost Desktop]# redis-cli -h 192.168.1.216 -r 10 -i 1 INFO | grep used_memory_human
    used_memory_human:1.24M
    used_memory_human:1.24M
    used_memory_human:1.24M
    used_memory_human:1.24M
    used_memory_human:1.24M
    used_memory_human:1.24M
    used_memory_human:1.24M
    used_memory_human:1.24M
    used_memory_human:1.24M
    used_memory_human:1.24M
    [root@localhost Desktop]#

    可以清楚的看到,当前 memory_human 占用 1.24M,一个麻雀式的监控就来了!

    四:--stat完整版监控

    如果只有一个内存占用指标肯定不能满足大家的实际需求,比如你就看不到当前的redis中有多少的keys,有多少的clients,有多少被blocked,有多少requests等等信息,如果这些都有了,是不是有点像mongodb中的mongostats呢?

    [root@localhost Desktop]# redis-cli -h 192.168.1.216 --stat
    ------- data ------ --------------------- load -------------------- - child -
    keys mem clients blocked requests connections
    27 1.24M 7 0 1198768 (+0) 2206
    27 1.24M 7 0 1198769 (+1) 2206
    27 1.24M 7 0 1198770 (+1) 2206
    27 1.24M 7 0 1198771 (+1) 2206
    27 1.24M 7 0 1198772 (+1) 2206
    27 1.24M 7 0 1198773 (+1) 2206
    27 1.24M 7 0 1198774 (+1) 2206
    27 1.24M 7 0 1198775 (+1) 2206
    27 1.24M 7 0 1198776 (+1) 2206
    27 1.24M 7 0 1198777 (+1) 2206
    27 1.24M 7 0 1198778 (+1) 2206
    27 1.24M 7 0 1198779 (+1) 2206
    27 1.24M 7 0 1198780 (+1) 2206
    27 1.27M 7 0 1198782 (+2) 2206
    27 1.24M 7 0 1198783 (+1) 2206
    27 1.24M 7 0 1198784 (+1) 2206
    27 1.24M 7 0 1198785 (+1) 2206

    ----------------------------------------------------------------------------------------------------------------------------感谢到访!期待您的下次光临!

    文章来源:https://mp.weixin.qq.com/s?src=11&timestamp=1609858155&ver=2810&signature=e9RwB0gR0j6Aw2BANtOfZDJgbwLIsZRv*htBOhAPSLMhRKY2xTuvhnU5695Z4RgXcCYePJ0F6UiMLMIu2UTSsQFsrgJcBecZZKskTlY7IBcu4jdlRDGaijBBbPSMCXQ1&new=1   微信这个可能一会就会无法再进行访问

  • 相关阅读:
    原创:一段利用C#2005操作FOXPRO表的函数
    对VS2005的TreeView控件的困惑(或者是建议吧)
    哎呀!实在是巨烦“驱动之家”这个网站!!
    一种Server Application Unavailable错误的解决办法:
    Win7系统下解决VB6.0鼠标滚轮支持
    [分享]关于水晶报表导出到PDF格式的一个注意事项
    mmsPlayer, for android,ios ,wince,windows,wm等
    C#汉字生成拼音
    使用C#读写文件
    如何使PNG图片在IE浏览器实现透明效果
  • 原文地址:https://www.cnblogs.com/varchar-pig/p/14238593.html
Copyright © 2011-2022 走看看