搜尋

首頁  >  問答  >  主體

redis和memcached是不是儲存多少空間就佔多少記憶體?

這些記憶體資料庫都是把資料放到記憶體裡,當作快取的話,是不是儲存多少內容就佔用多少記憶體呢?

例如我的Linux伺服器是2G記憶體的,那使用他們作為快取資料庫,就不能快取超過2G的內容呢?

ringa_leeringa_lee2800 天前904

全部回覆(2)我來回復

  • 某草草

    某草草2017-04-27 09:04:23

    不是存多少佔用多少記憶體。

    memcached的快取機制
    memcached使用的是Slab Allocation記憶體分配機制,可以看下這篇文章Memcached的資料儲存方式
    這種機制有個缺點,將分配的記憶體分割成特定長度的區塊(chuck),例如:將70位元組的資料存放到88位元組的區塊,就造成了18位元組的浪費

    記憶體分配流程

    redis 的有需要或後續再補上.

    回覆
    0
  • 给我你的怀抱

    给我你的怀抱2017-04-27 09:04:23

    是的。因為它們是基於記憶體的資料庫。

    雖然可以改造成利用磁碟快取一部分數據,但這樣做就失去它自身的意義了。

    回覆
    0
  • 取消回覆