網站首頁 編程語言 正文
命令使用:
redis-cli [OPTIONS] [cmd [arg [arg ...]]]
選項說明:
-h <hostname> Server hostname (default: 127.0.0.1). ip地址
-p <port> Server port (default: 6379). 服務器端口號
-s <socket> Server socket (overrides hostname and port).
-a <password> Password to use when connecting to the server. 密碼
-u <uri> Server URI. url格式的地址
-r <repeat> Execute specified command N times.
-i <interval> When -r is used, waits <interval> seconds per command.
It is possible to specify sub-second times like -i 0.1.
-n <db> Database number. 指定數據庫
-x Read last argument from STDIN.
-d <delimiter> Multi-bulk delimiter in for raw formatting (default: \n).
-c Enable cluster mode (follow -ASK and -MOVED redirections).
--raw Use raw formatting for replies (default when STDOUT is
not a tty).
--no-raw Force formatted output even when STDOUT is not a tty.
--csv Output in CSV format.
--stat Print rolling stats about server: mem, clients, ... 統計數據 連續輸出
--latency Enter a special mode continuously sampling latency.
If you use this mode in an interactive session it runs
forever displaying real-time stats. Otherwise if --raw or
--csv is specified, or if you redirect the output to a non
TTY, it samples the latency for 1 second (you can use
-i to change the interval), then produces a single output
and exits. 延時統計
--latency-history Like --latency but tracking latency changes over time.
Default time interval is 15 sec. Change it using -i.
--latency-dist Shows latency as a spectrum, requires xterm 256 colors.
Default time interval is 1 sec. Change it using -i.
--lru-test <keys> Simulate a cache workload with an 80-20 distribution.
--replica Simulate a replica showing commands received from the master.
--rdb <filename> Transfer an RDB dump from remote server to local file. 導出rdb文件
--pipe Transfer raw Redis protocol from stdin to server.
管道模式
--pipe-timeout <n> In --pipe mode, abort with error if after sending all data.
no reply is received within <n> seconds.
Default timeout: 30. Use 0 to wait forever.
管道超時
--bigkeys Sample Redis keys looking for big keys.
--hotkeys Sample Redis keys looking for hot keys.
only works when maxmemory-policy is *lfu.
--scan List all keys using the SCAN command.獲取服務器所有的鍵
--pattern <pat> Useful with --scan to specify a SCAN pattern.
正則表達式 用于scan命令中
--intrinsic-latency <sec> Run a test to measure intrinsic system latency.
The test will run for the specified amount of seconds.
--eval <file> Send an EVAL command using the Lua script at <file>.
--ldb Used with --eval enable the Redis Lua debugger.
--ldb-sync-mode Like --ldb but uses the synchronous Lua debugger, in
this mode the server is blocked and script changes are
not rolled back from the server memory.
--cluster <command> [args...] [opts...]
Cluster Manager command and arguments (see below).
--verbose Verbose mode.
--no-auth-warning Don't show warning message when using password on command
line interface.
注意:
-u? 選項中url格式參考文檔https://www.iana.org/assignments/uri-schemes/prov/redis
格式為:redis://user:secret@localhost:6379/0?foo=bar&qux=baz
舉例:
root@hylaz:~# redis-cli
127.0.0.1:6379> set name hylaz
OK
127.0.0.1:6379> quit
root@hylaz:~# redis-cli -h 127.0.0.1
127.0.0.1:6379> get name
"hylaz"
127.0.0.1:6379> select 6
127.0.0.1:6379[6]>
root@hylaz:~# redis-cli -h 127.0.0.1 -p 6379 -n 2
127.0.0.1:6379[2]> get age
server中統計選項
root@hylaz:~# redis-cli --stat
------- data ------ --------------------- load -------------------- - child -
keys mem clients blocked requests connections
11 835.52K 1 0 12 (+0) 5
11 835.52K 1 0 13 (+1) 5
11 835.52K 1 0 14 (+1) 5
11 835.52K 1 0 15 (+1) 5
列表中選項說明:
選項 | 含義 |
---|---|
keys | server中key的數量 |
mem | 鍵值對的總內存量 |
clients | 當前連接的總clients數量 |
blocked | 當前阻塞的客戶端數量 |
requests | 服務器請求總次數 (+1) 截止上次請求增加次數 |
connections | 服務器連接次數 |
使用info命令獲取服務器的信息
導入rdb文件 命令:redis-cli --rdb rdb.log
root@hylaz:~# redis-cli --rdb rdb.log
SYNC sent to master, writing 344 bytes to 'rdb.log'
Transfer finished with success.
該命令選項實現:
- 向server發送SYNC命令,返回需要寫的總字節數
- 從server讀取總字節數據寫到指定文件中
找出各種數據類型的最大鍵值對
命令:redis-cli --big-keys
root@hylaz:~# redis-cli --bigkeys
# Scanning the entire keyspace to find biggest keys as well as
# average sizes per key type. You can use -i 0.1 to sleep 0.1 sec
# per 100 SCAN commands (not usually needed).
[00.00%] Biggest string found so far 'name1' with 5 bytes
[00.00%] Biggest set found so far 'myset' with 1 members
[00.00%] Biggest string found so far 'key' with 6 bytes
-------- summary -------
Sampled 13 keys in the keyspace!
Total key length in bytes is 52 (avg len 4.00)
Biggest string found 'key' has 6 bytes
Biggest set found 'myset' has 1 members
12 strings with 33 bytes (92.31% of keys, avg size 2.75)
0 lists with 0 items (00.00% of keys, avg size 0.00)
1 sets with 1 members (07.69% of keys, avg size 1.00)
0 hashs with 0 fields (00.00% of keys, avg size 0.00)
0 zsets with 0 members (00.00% of keys, avg size 0.00)
0 streams with 0 entries (00.00% of keys, avg size 0.00)
該選項實現:通過使用scan命令遍歷server中的鍵值對,針對不同數據類型進行統計,
找出server中熱點key 命令:redis-cli --hotkeys
# Scanning the entire keyspace to find hot keys as well as
# average sizes per key type. You can use -i 0.1 to sleep 0.1 sec
# per 100 SCAN commands (not usually needed).
[00.00%] Hot key 'dd' found so far with counter 4
[00.00%] Hot key 'myset' found so far with counter 5
[00.00%] Hot key 'a' found so far with counter 5
[00.00%] Hot key 'dds' found so far with counter 4
[71.43%] Hot key 'aa' found so far with counter 4
[71.43%] Hot key 'key' found so far with counter 4
-------- summary -------
Sampled 14 keys in the keyspace!
hot key found with counter: 5 keyname: myset
hot key found with counter: 5 keyname: a
hot key found with counter: 4 keyname: dd
hot key found with counter: 4 keyname: dds
hot key found with counter: 4 keyname: aa
hot key found with counter: 4 keyname: key
選項實現:
1. redis實現8種緩存淘汰策略:
voltile-lru:從已設置過期時間的數據集(server.db[i].expires)中挑選最近最少使用的數據淘汰
volatile-ttl:從已設置過期時間的數據集(server.db[i].expires)中挑選將要過期的數據淘汰
volatile-random:從已設置過期時間的數據集(server.db[i].expires)中任意選擇數據淘汰
volatile-lfu: 從已設置過期時間的數據集驅逐使用頻率最少的鍵
allkeys-lru:從數據集(server.db[i].dict)中挑選最近最少使用的數據淘汰
allkeys-lfu: 從所有鍵中驅逐使用頻率最少的鍵
allkeys-random:從數據集(server.db[i].dict)中任意選擇數據淘汰
no-enviction(驅逐):禁止驅逐數據 當內存不足以容納新寫入數據時,新寫入操作會報錯
需要設置淘汰策略為lru或者lfu
2. 命令實現使用scan命令遍歷所有的鍵值對,針對每個鍵值對使用OBJECT freq 獲取該鍵值對的信息
原文鏈接:https://blog.csdn.net/JineD/article/details/124037249
相關推薦
- 2022-08-01 Flask-SQLALchemy基本使用方法_python
- 2022-05-02 Entity?Framework常用查詢語句_實用技巧
- 2022-06-21 C++分析講解類的靜態成員變量是什么_C 語言
- 2022-10-11 sharedUid、系統簽名、預置應用
- 2024-01-15 SpringMVC之@InitBinder注解詳解
- 2022-12-30 Android入門之在子線程中調用Handler詳解_Android
- 2022-09-20 Springboot整合Redis與數據持久化_Redis
- 2022-05-13 eigen交叉編譯
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支