簡體   English   中英

Redis 中的 FLUSHALL ASYNC 線程安全嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM