摘要:使用背景集群,每個帶有一個副本,經(jīng)常在更新數(shù)據(jù)時,程序出現(xiàn)卡頓。原因分析單機所有的數(shù)據(jù)都保存在一個機器上,使用覆蓋原有值時不會影響。現(xiàn)在處理思路我們通過一個中間來實現(xiàn)原有數(shù)據(jù)的更新。查詢數(shù)據(jù)我們通過得到值,通過獲取真實的數(shù)據(jù)。
1.使用背景
redis集群,每個key帶有一個副本,經(jīng)常在更新數(shù)據(jù)時,程序出現(xiàn)卡頓。
2.原因分析1.單機Redis:所有的數(shù)據(jù)都保存在一個機器上,使用rename覆蓋原有值時不會影響。
2.集群Redis:所有的數(shù)據(jù)分布在多臺機器上(設(shè)置了副本),使用rename覆蓋原有值時,當(dāng)原有值和新值不在一個機器上,涉及到不同服務(wù)器之間數(shù)據(jù)的拷貝,此時訪問數(shù)據(jù)可能會卡住。
原先處理:
如上圖所示,處理流程為新建一個key2,數(shù)據(jù)為value2,我們刪除key1和value1,然后重命名key2為key1,數(shù)據(jù)為value2。
現(xiàn)在處理:
思路:我們通過一個中間key2來實現(xiàn)原有數(shù)據(jù)的更新。
更新數(shù)據(jù):我們新建一個key2,新數(shù)據(jù)為value2,我們把key1的value值設(shè)為key2,value1設(shè)置一個過期時間。
查詢數(shù)據(jù):我們通過key1得到值key2,通過key2獲取真實的數(shù)據(jù)value2。
大家可以關(guān)注我的公眾號:不知風(fēng)在何處,相互溝通,共同進步。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/67322.html
摘要:優(yōu)點是反序列化時不需要提供類型信息,但缺點是序列化后的結(jié)果非常龐大,是格式的倍左右,這樣就會消耗服務(wù)器的大量內(nèi)存。使用庫將對象序列化為字符串。優(yōu)點是速度快,序列化后的字符串短小精悍。 需要的jar包:spring版本:4.3.6.RELEASE,jedis版本:2.9.0,spring-data-redis:1.8.0.RELEASE;如果使用jackson序列化的話還額外需要:jac...
摘要:重新分片,把要刪除的主節(jié)點的數(shù)據(jù)槽移動到其他主節(jié)點上,以免數(shù)據(jù)丟失。分區(qū)完成當(dāng)前主節(jié)點已經(jīng)沒有數(shù)據(jù)槽了。這樣就可以實現(xiàn)橫向動態(tài)擴容,新增加的主從節(jié)點,用于存儲新的數(shù)據(jù)則可,對以前的節(jié)點的數(shù)據(jù)不會有任何影響。 需求: A redis cluster 集群 40 臺集群擴容到 68 臺也就是 增加 28 臺新的機器 : 一主一從 為一組,一共12組 前期準(zhǔn)備 掃描新增擴容服務(wù)器ip是...
閱讀 3686·2021-09-07 10:19
閱讀 3627·2021-09-03 10:42
閱讀 3584·2021-09-03 10:28
閱讀 2548·2019-08-29 14:11
閱讀 809·2019-08-29 13:54
閱讀 1594·2019-08-29 12:14
閱讀 417·2019-08-26 12:12
閱讀 3614·2019-08-26 10:45