2016-07-28 42 views
2

我有一個數據庫與關鍵的TTL。
我也有定期運行到所有鍵的TTL重置爲默認值的腳本(這裏爲20秒):Redis Lua腳本與密鑰空間通知有關嗎?

local matches = redis.call('KEYS', '*') for _,key in ipairs(matches) do redis.call('SETEX', key, 20, -1) end 

我的問題 - 這可能是一個鍵,而上面的腳本到期在跑。
我知道Lua腳本是原子的(http://redis.io/commands/EVAL,「原子的原子性」),但我不知道這也適用於過期事件。

謝謝

+0

有趣的問題。我認爲它歸結爲到期過程是否使用用於爲請求提供服務的相同線程。我的猜測是,它確實如此。 –

回答

0

是的,這是可能的,因爲Redis在訪問密鑰時檢查TTL。

另外,我們強烈建議不要使用KEYS命令,特別是使用Lua腳本。

相關問題