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   微信這個可能一會就會無法再進行訪問

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM