[英]Is FLUSHALL ASYNC thread safe in Redis?
我是 DevOps 的新手,所以請指導我是否在 Redis 線程安全中使用FLUSHALL ASYNC
。 當 Redis 使用不同的線程在后台刪除鍵而不阻塞服務器時,它會影響我的服務器性能嗎? 當前使用:laravel PS 我想使用這個命令,這樣我的服務器就不會像之前那樣變得無響應(10 秒,所有的點擊量不斷增加,導致 CPU 飢餓)
FLUSHALL ASYNC
實際上是為每個數據庫字典創建一個新的空哈希表集(每個字典有兩個哈希表)並調度舊的哈希表以進行延遲釋放。
它是線程安全的,但是當數據庫在后台被清空時,它會增加你的 CPU 使用率,你也可以預料到一些性能下降。
在一個空的 redis-server 上,我加載了幾個數據庫,每個數據庫有 20M 鍵:
>select 4
OK
[4]> debug populate 20000000 key 20
OK
(16.49s)
[4]> select 3
OK
[3]> debug populate 20000000 key 20
OK
(16.75s)
[3]> info memory
# Memory
used_memory:3739770656
used_memory_human:3.48G
跑基准:
~$ redis-benchmark -c 5 -t set,lpush -q
SET: 30413.62 requests per second
LPUSH: 30553.01 requests per second
運行FLUSHALL ASYNC
后立即執行相同的基准測試(服務器在后台刪除 40M 密鑰):
~$ redis-benchmark -c 5 -t set,lpush -q
SET: 26288.12 requests per second
LPUSH: 25367.83 requests per second
我看到了大約 15% 的退化
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.