當(dāng)我們需要遍歷redis所有key或者指定模式的key時(shí),首先想到的是KEYS命令,例如:keys *
成都創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)丹鳳,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
相當(dāng)于關(guān)系型數(shù)據(jù)庫里的select *,因此在一個(gè)生產(chǎn)環(huán)境中的大Redis數(shù)據(jù)庫中使用這個(gè)命令可能會(huì)造成性能問題。
從Redis2.8版本以后官方給我們提供了一個(gè)更好的遍歷KEY的命令SCAN
語法為:
SCAN cursor [MATCH pattern] [COUNT count]
例如:
127.0.0.1:6379> scan 0 match *192.168*
1) "105"
2) 1) "192.168.0.220:6379:CommandCountByMinute"
2) "192.168.0.121:6379:memory"
3) "192.168.0.213:6379:CommandCount:1528190604"
4) "192.168.0.221:6379:KeyCount:1528190601"
5) "192.168.0.226:6379:KeyCount:1528190334"
6) "192.168.0.129:6379:CommandCount:1528121363"
7) "192.168.0.129:6379:KeyCount:1528121366"
SCAN 命令返回的每個(gè)元素都是一個(gè)數(shù)據(jù)庫鍵,該命令對(duì)數(shù)據(jù)庫的性能影響比較小,因此推薦在生產(chǎn)環(huán)境中使用。