redis的数据是保存在内存中的。随着系统的运行,redis的数据越来越多,会导致物理内存不足。通过使用虚拟内存(VM),将很少访问的数据交换到磁盘上,腾出内存空间的方法来解决物理内存不足的情况。
redis的VM只是把 value交换到磁盘中,而key依然存在内存中,是为了能够快速定位到value在磁盘上的位子,提高性能。所以如果是key过多引起的物理内存不足,通过VM的方法并不能解决。
redis也是按照页与磁盘交换文件的,一页只能保存一个redis对象,但是一个redis对象能保存在多页中。
当redis内存超过某个值的时候(通过配置来设置这个值),value会被交换到磁盘的swap文件中。value的选取方法是那些很少访问,而且占用内存空间比较大的对象。