redis根據key模糊查詢 達到物理網卡上限,突然幾十萬的請求訪問Redis的某個key如何解決?
達到物理網卡上限,突然幾十萬的請求訪問Redis的某個key如何解決?對于手持4T redis實例組,突發(fā)請求峰值為500000 ops。由于mget的廣泛使用,每秒實際請求數百萬個密鑰。萬兆網絡,物
達到物理網卡上限,突然幾十萬的請求訪問Redis的某個key如何解決?
對于手持4T redis實例組,突發(fā)請求峰值為500000 ops。由于mget的廣泛使用,每秒實際請求數百萬個密鑰。
萬兆網絡,物理網卡不是瓶頸,CPU不是,設計不好容易成為瓶頸。
主要用于千伏,少量使用和列表,并設置
替換其他按鍵。密鑰有自己的設置,查詢時密鑰過長會降低查詢效率
最近使用redis,使用incrby操作,但是這個API沒有提供設置密鑰過期時間的參數。
我想出了一個相對較低的方法。
長限=RedistringService.incrBy公司(limitcachekey,1)
//對于獲取數字1的線程,設置密鑰的有效期
如果(limit==1){RedistringService.expired已過期(limitcachekey,2)
}]當incrby的返回值為1時,請獲得1的線程幫助設置密鑰的過期時間。
由于incrby是原子的,必須只有一個線程才能獲得1,因此不可能同時調用過期的操作。
經過驗證,這種方法是可行的,但是感覺很低