1
A
回答
4
你可以做到這一點
redis-cli KEYS "*" | grep -v "configurations::" | xargs redis-cli DEL
列出所有鍵進入Redis的,從包含列表中刪除鍵「配置::」,並從Redis的
編輯 作爲@Sergio Tulentsev刪除注意它的鑰匙不適用於生產。我使用這個python腳本刪除產品redis上的密鑰。在調用腳本之前,我從主服務器複製到從服務器。
#!/usr/bin/env python
import redis
import time
pattern = "yourpattern*"
poolSlave = redis.ConnectionPool(host='yourslavehost', port=6379, db=0)
redisSlave = redis.Redis(connection_pool=poolSlave)
poolMaster = redis.ConnectionPool(host='yourmasterhost', port=6379, db=0)
redisMaster = redis.Redis(connection_pool=poolMaster)
cursor = '0'
while cursor != 0:
cursor, data = redisSlave.scan(cursor, pattern, 1000)
print "cursor: "+str(cursor)
for key in data:
redisMaster.delete(key)
print "delete key: "+key
# reduce call per second on production server
time.sleep(1)
0
是的,這是可能的。枚舉所有的鍵,評估每個鍵,並刪除它是否符合刪除標準。
沒有內置Redis的這個命令,如果這是你在問什麼。
可能可以煮了一個Lua腳本,將做到這一點(它會期待您的應用程序,它是一個命令),但仍然是在引擎蓋下同樣的方法。
1
的SCAN
& DEL
方法(如提出@khanou)是最好的臨時解決方案。或者,你可以保留所有的configurations::
鍵名的索引與Redis的設置(只需SADD
密鑰的名字給它當你創建一個新的configurations::
鍵)。一旦你有了這一套,你可以SSCAN
它更有效地獲得所有相關的鍵名(不要從它忘記SREM
每當你DEL
雖然)。按鍵
相關問題
- 1. Redis刪除鍵
- 2. Teradata全部刪除與刪除+創建
- 3. Redis鍵自動刪除
- 4. 魚殼:全部刪除除
- 5. Redis的命令行刪除多個鍵
- 6. 刪除全部Facebook
- 7. 全部刪除(和)
- 8. Linq全部刪除
- 9. 從redis刪除鍵/值 - 幻影密鑰沒有刪除
- 10. 如何刪除全部。從字符串除了最後?
- 11. 刪除鍵與單鍵
- 12. 春季Redis刪除不刪除密鑰
- 13. 刪除除了
- 14. PDO「全部或全部」刪除交易
- 15. 清除全部和刪除樣式
- 16. Android - sqlite全部刪除
- 17. PHP刪除全部大寫
- 18. Cakephp刪除全部後
- 19. 休眠並全部刪除
- 20. Java設置 - 全部刪除
- 21. 刪除全部。 from string perl
- 22. 刪除刪除了混帳
- 23. SQL:刪除,除了
- 24. 刪除行與外鍵
- 25. 刪除主鍵也刪除外鍵
- 26. 「刪除」與「刪除」
- 27. SQL刪除除頂部x之外的全部x
- 28. IntelliJ:用刪除鍵刪除突出顯示的部分
- 29. Rails,Soulmate,Redis刪除記錄
- 30. Redis刪除模式太慢
用法是氣餒,反而是,可以在緊要關頭使用。 –
你是對的@SergioTulentsev,如果在生產中你可以用生產中的redis轉儲裝載其他redis。您執行轉儲上的Keys *並在主服務器上執行刪除。 – khanou