Memcached單鍵超1M資料量的拆分設計及測試

2021-07-31 03:33:04 字數 1122 閱讀 4027

memcached單個鍵值資料量不能超出預設的最大1m限制,這個時候需要進行拆分,成多個鍵。評估的時候需要實現模擬目標物件的資料量。比如我的資料結構如下:

private static dto.onlineuser makeuser(string key)

;user.roleinfo = new dto.roleinfo

;return user;

}

序列化壓縮儲存的時候,100個物件是83.5kb,那麼可以預估,最多不能超出1200個,83.5*12=1002kb<1024kb;

同時考慮隨機分配,隨機演算法取餘(divisor = 16)如下:

byte buffer = guid.newguid().tobytearray();

var gid = bitconverter.toint64(buffer, 0);

return gid % divisor;

分配的大致demo測試:

private static void simulation()

var t = temp.groupby(x => x.item1).select(x => new

).orderby(x => x.k);

= consolecolor.green;

//foreach (var i in t)

//,值:", i.k, i.c);

//}console.foregroundcolor = consolecolor.white;

var count = t.max(x => x.c);

var pp = t.where(x => x.c == count).firstordefault().k;

console.writeline("最大鍵:,最大值:", pp, count);

大量的測試結果表明,單個鍵最多不超過1100個分配,達到預期

產生m個1 m的不重複隨機數

方法一 逐個產生這些隨機數,每產生乙個,都跟前面的隨機數比較,如果重複,就重新產生。方法二 按順序產生這些數,但隨機產生它們的位置,用隨機產生的位置將原序列置亂。例如下面產生100個100以內不重複隨機數的 int a 100 for i 0 i 99 i a i i for i 99 i 1 i ...

1m網速是什麼意思,1m頻寬是什麼意思

等等,也就是說我們在正常的情況下可以擁有最多不超過64k的專有頻寬。注意是 不高於 那麼也就是說很多時候我們的專有頻寬可能小於64k,那有又是為什麼呢?事實上,中國電信的adsl是執行在atm上面,atm到chinanet邊緣路由器頻寬是155m,每乙個邊緣路由器可以連線3000使用者,如果這些用 ...

1M到底有多大?

很多人買伺服器的時候都會遇到乙個問題,想買大一點的頻寬,最好200m,可是200m 貴上天,學生付不起,有的人付了錢,這個月就沒飯吃了。其實買伺服器只需要1m頻寬 無名的程式設計師 你坑人的是吧?1m怎麼夠用,我每秒有1000多個訪客啊 1m的大小是你無法估量的,有人覺得1t才是無法估量的!其實乙個...