目前 redis db 我們只用在 rails 頁面快取用途,用過的管理工具僅 telnet。 常做的是 MONITOR 看存取狀況,為什麼行為不如預期, 然後基本的 DEL 把舊值砍掉而已。
Telnet 互動輕快,monitor 的即時性也很方便,不過每次連進去下 monitor
有點麻煩,
而且 SET 系指令會噴大塊字串(顯示寫入的值)洗畫面,太噁心了。
於是寫了個 rails 的 wrapper script,
依賴 redis-rb,且需要某處有 config/redis.yml 寫好連線用的參數
→ 簡易 redis client: scripts/redis-client — Gist
啟動方式
- 連到 production →
./script/redis-client production
- 連到 staging,且只顯示 key 開頭為 "staging" 的存取 →
./script/redis-client staging -f \\A\"staging
功能
- 直接進入 monitor 狀態,可以輸入 m 暫停/繼續 monitor 的輸出。
-
命令列選項
-f pattern
(或--key-filter=pattern
)指定只 monitor 符合的 key,不符就不顯示(只影響 SET、GET 等有 key 的指令)。 - del 接受 pattern,例如
del *foo*
(pattern 會傳給 redis KEYS 指令)。 - grep 指令,例如
grep foo\\d+
(對 KEYS 結果作 ruby grep,這裡 pattern 是 ruby 的 Regexp)。 - 部分輸出有 pretty print,另 SET、SETEX 不顯示寫入的值(而是值的長度)以節省畫面空間。
有 0 個意見
☂