搜尋

首頁  >  問答  >  主體

redis刪除多個鍵出現問題

在看《redis入門指南》這篇文章中,第三章第二節介紹刪除鍵的時候,有這樣一段描述:

DEL命令的參數不支持通配符,但我們可以結合Linux的管道和xargs命令自己實現刪除所有符合規則的鍵。比如要刪除所有以“user:”開頭的鍵,就可以執行redis-cli
KEYS "user:" | xargs redis-cli
DEL。另外,由於DEL命令支持多個鍵作為參數,所以還可以執行redis-cli DEL 'redis-cli KEYS
"user:
"'來達到同樣的效果,性能更好。

但是我測試的時候,第一個結合管道的命令能起作用,但是第二個貌似不起作用。
剛學習redis,請大神指教。

黄舟黄舟2798 天前627

全部回覆(1)我來回復

  • ringa_lee

    ringa_lee2017-04-22 09:02:42

    你看錯了。

    `和'是兩個不同的東西。

    他們寫的是

    他们写的是
    redis-cli DEL `redis-cli KEYS "user:"`
    
    你写的是
    redis-cli DEL 'redis-cli KEYS "user:"'

    注意看差別。

    單引號是直接把單引號內的內容當做字串,
    redis-cli DEL 'redis-cli KEYS "user:"'redis-cli DEL 'redis-cli KEYS "user:"'
    就是删除redis中名叫redis-cli KEYS "user:"就是刪除redis中名叫

    的key,

    而反向引號是先執行反向引號中的內容取結果,就是說,

    redis-cli DEL `redis-cli KEYS "user:"`
    redis-cli KEYS "user:"先執行的是

    ,取出結果(例如是:)

    user01
    user02
    user03

    然後執行

    redis-cli DEL user01 \n user02 \n user03

    這個問題不在redis,而是在shell中單引號和反向引號有差別。 🎜

    回覆
    0
  • 取消回覆