MongoDB 数据读取到内存问题


  • 註冊用戶

    听闻MongoDB有一种 内存影射文件(memory-mapped file) 可以实现将数据读取到内存,请问具体是怎么实现以及管理的呢?


  • Lv 1

    你指的是In-memory的方式吧?

    先掛載內存的鏡像

    mount -t tmpfs -o size=32000M tmpfs /data/mongodb/ramdata

    在啟動mongodb的配置文檔中加入inMemory的配置

    storage:
                engine: inMemory
                dbPath: /data/mongodb/ramdata

    要注意的是如果將內存節點當成主節點(一般不會這麼做)

    所有資料都是存在內存,包含用戶權限資料

    所以在重開機後,需要重新配置用戶權限資料


  • 註冊用戶

    請教一下,什麼應用場景會使用到 In-memory 呢 ?


  • Lv 1

    @yea  適用在數據量少 但是會有很高併發存取的情境


  • 註冊用戶

    掛載 tmpfs 就是利用了 Linux 系統的 ramdisk 方式,因為 In-memory 的儲存只有企業板才支持,是否指定了 In-memory 之後 mongod 就直接存取 ramdisk 取代原本的內存部分?

    原本的 mmap engine 是 mongod 先存放內存再映射到外部的硬碟空間上面,如果非企業版的用戶將原本的外部儲存直接改用 tmpfs 配置 ramdisk 取代硬碟空間就形成內存和 ramdisk 同時占用的情況?

    以上是我對於企業版的 In-memory engine 的猜測,有人可以釋疑嗎?

    因為如果 In-memory 還是需要占用內存再映射到 ramdisk 上面,我就看不出 In-memory engine 的實際優勢為何了。


  • Lv 1

    @Amber

    請問有哪些實際應用面有這需求呢?


登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待