Redis实战(13)虚拟内存

  • 时间:
  • 浏览:0
  • 来源:uu快3诀窍_uu快3app安卓_导航网

vm-page-size 32 

2

vm-max-threads 4 

7

本文转自shayang8851CTO博客,原文链接:http://blog.51cto.com/janephp/1340672,如需转载请自行联系原作者

3

vm-swap-file /tmp/redis.swap 

redis 的虚拟内居于设计上为了保证key 的查找效率,只会将value 交换到swap 文件中。所

以不可能 是内存问提是不可能 太多value 很小的key 造成的,没人虚拟内存不不能避免,和操作

系统一样redis 也是按页面来交换对象的。redis 规定同有4个页面只能保存有4个对象。而且 一

个对象都需要保居于多个页面中。在redis 使用的内存没超过vm-max-memory 你还后能 是不不交换

任何value 的。当超过最大内存限制后,redis 会选择较过期的对象。不可能 有4个对象一样过期

会优先交换比较大的对象,精确的公式swappability = age*log(size_in_memory)。对于

vm-page-size 的设置应该根据另一方的应用将页面的大小设置为都需要容纳大多数对象的大小,

太多了会浪费磁盘空间,太小了会造成交换文件经常出现 碎片。对于交换文件中的每个页面,redis

会在内存中对应有4个1bit 值来记录页面的空闲请况。好多好多 像里面配置中页面数量(vm-pages

134217728 )会占用16M 内存用来记录页面空闲请况。vm-max-threads 表示用做交换任务的

多线程 数量。不可能 大于0 推荐设为服务器的cpu 内核的数量,不可能 是0 则交换过程在主多线程 进行。

6

4

5

vm-max-memory 60 0000 

vm-enabled yes 

首先说明下redis 的虚拟内存与操作系统的虚拟内存都不 一码事,而且 思路和目的都不 相同

的。好多好多 暂时把不经常访问的数据从内存交换到磁盘中,从而腾出宝贵的内存空间用于有些

需要访问的数据。尤其是对于redis 好多好多 的内存数据库,内存经常缺乏用的。除了都需要将数

据分割到多个redis server 外。另外的还后能 提高数据库容量的辦法 好多好多 使用虚拟内存把那些

不经常访问的数据交换的磁盘上。不可能 朋友的存储的数据经常有少次要数据被经常访问,大

次要数据很少被访问,对于网站来说我觉得经常只能血块用户经常活跃。当血块数据被经常访

问时,使用虚拟内存不但能提高单台redis server 数据库的容量,而且 好多好多 会对性能造成太

多影响。

redis 没人使用操作系统提供的虚拟内存机制好多好多 另一方在实现了另一方的虚拟内存机制,主要

的理由有两点:

1、操作系统的虚拟内存是已4k 页面为最小单位进行交换的。而redis 的大多数对象都远小

于4k,好多好多 4个操作系统页面上不可能 有多个redis 对象。另外redis 的集合对象类型如list,set

不可能 居于与多个操作系统页面上。最终不可能 造成只能10%key 被经常访问,而且 所有操作系

统页面完会被操作系统认为是活跃的,好多好多 只能内存真正耗尽时操作系统才会交换页面。

2、相比于操作系统的交换辦法 ,redis 都需要将被交换到磁盘的对象进行压缩,保存到磁盘的对

象都需要去除指针和对象元数据信息,一般压缩后的对象会比内存中的对象小10 倍,好多好多 redis

的虚拟内存会比操作系统虚拟内存能少做好多好多 io 操作。

1

vm-pages 134217728