新聞中心
Redis是一個開源、內(nèi)存數(shù)據(jù)庫,很多場景都可以使用它來保存和存取集合、列表、哈希表等數(shù)據(jù)結(jié)構(gòu),保存的數(shù)據(jù)支持秒級查詢和更新操作。但是有時候,當Redis中出現(xiàn)不必要的KEY時,清除redis就變得尤為必要了。

目前創(chuàng)新互聯(lián)已為超過千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計、平武網(wǎng)站維護等服務(wù),公司將堅持客戶導向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
一般來說,清除Redis有兩種基本的方式,一種是bash命令行來實現(xiàn),另一種是通過Redis自身提供的API來實現(xiàn)Redis一鍵清空所有key。
首先介紹bash命令行清除key的方式,先通過如下命令獲取Redis中所有的key:
keys *
然后復制獲取的Redis key到一個文件中,比如叫keys.txt,內(nèi)容如下:
Key1
Key2
Key3
再通過以下文件來批量清除Redis中key:
while read line; do
redis-cli DEL $line
done
這種方法清除key比較繁瑣,下面介紹一個簡單的方式,即通過Redis的API來實現(xiàn)一鍵清空Redis中所有key,清除Redis key只需要執(zhí)行以下命令即可:
redis-cli FLUSHALL
執(zhí)行后會返回OK,表示清除成功。這里需要注意的是,F(xiàn)LUSHALL命令會將Redis中所有的key一并清除,所以一般情況下不推薦使用,只有在極端情況下,清除所有key是最后的選擇時才會考慮這種方案。
Redis一鍵清空所有key就介紹到這里,相信在遇到某些場景需要清空Redis temp對象的時候,大家已經(jīng)有一定的思路去實現(xiàn)了,當然,也可以選擇更加靈活方便的腳本來實現(xiàn),比如下面一個清除Redis key場景的腳本:
#!/bin/bash
#清除Redis中所有不同類型下面所有key
#Redis 的連接地址
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
#列出key類型
key_types=(string list hash set zset)
#遍歷所有類型
for key_type in ${key_types[*]}; do
#根據(jù)類型列出所有key
keys=`echo -en "KEYS *\r\n" | redis-cli -h ${REDIS_HOST} -p ${REDIS_PORT} -t ${key_type} | tr "\r\n" " "`
#根據(jù)key進行批量清除
if [ -z "$keys" ];then
continue
fi
echo -en "DEL $keys\r\n" | redis-cli -h ${REDIS_HOST} -p ${REDIS_PORT} -t ${key_type} > /dev/null
done
要清除Redis key,不管是bash命令行還是Redis API,都是可行的,但還是要謹慎使用,需要根據(jù)自身具體的業(yè)務(wù)場景,結(jié)合Redis的操作方式,來有選擇性的進行key的清除。
香港云服務(wù)器機房,創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)云服務(wù)器廠商,回大陸優(yōu)化帶寬,安全/穩(wěn)定/低延遲.創(chuàng)新互聯(lián)助力企業(yè)出海業(yè)務(wù),提供一站式解決方案。香港服務(wù)器-免備案低延遲-雙向CN2+BGP極速互訪!
網(wǎng)站欄目:清除Redis一鍵清空所有Key(清空redis所有key)
文章來源:http://www.5511xx.com/article/cddoiho.html


咨詢
建站咨詢
