redis和memcached是不是存储多少空间就占多少内存?

这些内存数据库都是把数据放到内存里,作为缓存的话,是不是存储多少内容就占用多少内存呢?

比如我的Linux服务器是2G内存的,那使用他们作为缓存数据库,就不能缓存超过2G的内容呢?

阅读 6k
2 个回答

不是存多少占用多少内存。

memcached的缓存机制
memcached使用的是 Slab Allocation内存分配机制,可以看下这篇文章Memcached的数据存储方式
这种机制有个缺点,将分配的内存分割成特定长度的块(chuck),例如:将70字节的数据存放到88字节的块,就造成了18字节的浪费

内存分配流程

图片描述

redis 的有需要或后续再补上.

是的。因为它们是基于内存的数据库。

虽然可以改造成利用磁盘缓存一部分数据,但这样做就失去它自身的意义了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题