日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Go map[int64]int64 写入 redis 占用多少内存

發布時間:2024/4/11 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Go map[int64]int64 写入 redis 占用多少内存 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們在系統設計面試或者在實際工作中,免不了要進行一些估算。之前的文章里講過一些技巧,今天來個實戰。

這是我最近在做的一個工作,將內存中的一個超大的 map[int64]int64 寫入到 redis,map 里的元素個數是千萬級的。設計方案的時候,需要對 redis 的容量做一個估算。

如果不了解 redis 的話,可能你的答案是用元素個數直接乘以 16B(key 和 value 各占 8B)。我們假設元素個數是 5kw,那估算結果就是:5kw * 16B=50kk * 16B = 800MB。

答案是錯的。

為了解決這個問題,需要深入地研究一下 redis 的數據結構。

整個 redis 數據庫就是一個大的 map,它容納了所有的 key,我們都知道 key 都是 string 類型,而 value 則有 string, list, set, hashmap, zset……等類型。

Redis 中的一個 k-v 對用一個 entry 項表示,其中每個 entry 包含 key、value、next 三個指針,共 24 字節。由于 redis 使用 jemalloc 分配內存,因此一個 entry 需要申請 32 字節的內存。這里的 key, value 指針分別指向一個 RedisObject:

redis entrytypedef?struct?redisObject?{unsigned?type:4;unsigned?encoding:4;unsigned?lru:LRU_BITS;?int?refcount;void?*ptr; }?robj;

RedisObject 對應前面提到的各種數據類型,其中最簡單的就是 redis 內部的字符串了。它有如下幾種編碼格式:

SDS 編碼(圖片來自極客時間-redis 專欄)

圖中的元數據包括 type,encoding,lru, refcount,分別表示數據類型,編碼類型,最近一次訪問的時間戳,引用次數。

當字符串是一個整型時,直接放在 ptr 位置,不用再分配新的內存了,非常高效。

解析一下 44 字節的原因:元數據和 ptr 共占 16 字節,加上 44 字節,再加上字符串末尾的 '\0',共61 字節。因為字符串的長度只有 44,因此 len 和 alloc 各用 1 個字節就夠了。再加上 1 個字節的 flags,剛好是 64 字節。超過了這個值,SDS 就需要單獨再申請一塊內存,導致訪問的時候就多了一跳指針。

多提一句,redis 最大支持 512MB 大小的字符串。

回答本文的問題,恰好我們要寫入 redis 的 map 中的 key 和 value 都是整數,因此直接將值寫入 ptr 處即可。

于是 map 的一個 key 占用的內存大小為:32(entry)+16(value)+16(value)=64B。于是,5kw 個 key 占用的內存大小是 5kw*64B = 50 kk * 64B = 3200MB ≈ 3G。

假如我們在 key 前面加上了前綴,那就會生成 SDS,占用的內存會變大,訪問效率也會變差。

總之,我們根據要寫入 redis 中的字符串的長度可以很方便地估算占用內存的總大小。如果 key 和 value 恰好都是 int64 類型的,那么盡量不要在 key 前加前綴,這樣可以直接使用 key 的個數乘以 64B 就能算出占用內存的大小。

總結

以上是生活随笔為你收集整理的Go map[int64]int64 写入 redis 占用多少内存的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 性感美女福利视频 | 超碰成人97 | 亚洲一区二区三区四区 | 午夜日韩视频 | 少妇做爰xxxⅹ性视频 | 国产一区二区视频在线观看免费 | 美国黄色一级毛片 | 日本特黄视频 | 狠狠爱综合网 | 成人午夜激情 | 麻豆最新网址 | 东方av在线免费观看 | 男女互操在线观看 | 午夜日韩电影 | 全部毛片永久免费看 | www.色妞| xxxx毛片| 美腿丝袜亚洲综合 | 一级性生活黄色片 | 亚洲特级黄色片 | 99在线精品视频免费观看软件 | 精品一区在线观看视频 | 色窝窝无码一区二区三区成人网站 | 欧美性猛交xxxⅹ富婆 | 一区二区三区免费在线观看视频 | 日韩伦理大全 | 男人操女人免费 | 亚洲精品在线不卡 | 国产一级二级三级 | 亚洲AV无码乱码国产精品牛牛 | 好吊操精品视频 | 亚洲一二区 | 一级免费大片 | 岛国av免费 | 北条麻妃一区二区三区在线观看 | 一本色道久久综合熟妇 | 大又大粗又爽又黄少妇毛片 | 欧美性xxxx图片 | 借种(出轨高h) | 一区一区三区产品乱码 | 久久免费在线视频 | 国产精品一区免费观看 | 天堂av√ | 欧美不卡影院 | 午夜在线观看一区 | 亚洲熟伦熟女新五十路熟妇 | 丰满岳跪趴高撅肥臀尤物在线观看 | 色 综合 欧美 亚洲 国产 | 亚洲69视频 | 无毛av| 日韩免费在线看 | 亚洲av无码一区二区乱子仑 | 欧美高清一区二区 | 一级做a爱片久久 | aa丁香综合激情 | 观看av在线 | 日韩精品电影一区二区三区 | 欧美日韩日本国产 | 1769国产精品| 亚洲三级精品 | 激情综合啪啪 | 99热这里只有精品2 91免费版黄 | 女性裸体瑜伽无遮挡 | 中文字幕一区二区三区四区 | 免费观看视频一区 | 亚洲狼人在线 | 精品美女久久久 | 精品国产九九 | 亚洲经典一区二区三区四区 | 日本三级免费看 | 99热国内精品 | 国精品一区二区三区 | 日本午夜影院 | 国产日产精品一区二区三区四区 | 精品小视频 | 国产尻逼视频 | 天天射寡妇 | 青草视频免费在线观看 | 久久精品高清视频 | 日本在线视频观看 | 免费看国产视频 | 国精产品一区一区三区mba下载 | 欧美成人午夜电影 | 91av久久| 东北少妇不戴套对白第一次 | 在线观看的av | 亚洲好看站 | 在线视频观看一区 | 国产欧美在线 | 亚洲 欧美 综合 | 亚洲av无码精品一区二区 | 亚洲一级黄色大片 | 日本国产在线 | 91福利网 | 国产97色在线 | 国产 | 久久精品亚洲精品国产欧美 | 免费亚洲婷婷 | 久久视频这里只有精品 | 深喉口爆一区二区三区 |