我对Redis很陌生,在使用它之前,我想学习一些重要的(就我而言)细节。所以....
Redis正在使用RAM和HDD来存储数据。 RAM用作快速读/写存储,HDD用于使数据持久。当Redis启动时,它会将所有数据从HDD加载到RAM,或者只将经常查询的数据加载到RAM中?如果我在HDD上有500Mb Redis存储怎么办,但我只有100Mb或Redis的RAM。我在哪里可以阅读它?
谢谢
PS:对不起我的英文
答案 0 :(得分:9)
Redis将所有内容加载到RAM中。所有数据都写入磁盘,但只能读取重新启动服务器或进行备份等操作。
有两种方法可以使用RAM,而不是数据。您可以将它与MySQL或其他基于磁盘的存储结合使用,就像memcached一样工作 - 您可以手动管理缓存未命中和持久性。
Redis有一种VM模式,其中所有密钥必须适合RAM,但不经常访问的数据可以在磁盘上。但是,我不确定这是否在稳定版本中。
答案 1 :(得分:1)
最新版本(> 2.0)已显着改进,内存管理效率更高。请参阅此博客文章,其中介绍了如何使用哈希来优化RAM内存占用:http://antirez.com/post/redis-weekly-update-7.html
答案 2 :(得分:0)
称为虚拟内存的功能已被官方弃用
<块引用>Redis VM 现已弃用。 Redis 2.4 将是具有虚拟内存功能的最新 Redis 版本(但它也会警告您不鼓励使用虚拟内存)。我们发现使用 VM 有几个缺点和问题。在 Redis 的未来,我们只想提供最好的内存数据库(但像往常一样持久保存在磁盘上),至少目前不考虑对大于 RAM 的数据库的支持。我们未来的工作重点是提供脚本、集群和更好的持久性。
关于虚拟机的更多信息:https://redis.io/topics/virtual-memory