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