×

深圳网站建设—APP开发—网站制作—小程序开发_博纳网络公司

0755 -
82538016
82560826
网站制作资讯

APP开发怎样限制使用最大内存经验

文章编辑:网站建设 文章来源:APP开发 浏览量:

APP开发怎样限制使用最大内存经验,如果Redis因为使用了过多的物理内存而导致使用交换分区后,很容易导致Redis崩溃。为了防止Redis使用过多的物理内存,可以通过配置文件中“maxmemorv”的参数限制Redis使用的物理内存。
  当Redis使用的物理内存达到了限制值,任何write操作(比如set)会触发“数据清除策略”,通过配置文件中的“maxmemory-policy”来采用特定的“数据清除策略”,深圳APP开发公司整理Redis中定义的数据清除策略如下。
volatile-lru:对设置了过期时间的数据,将过期的数据移除,或者按照LRU(先进先出)算法移除。如果移除后的空闲内存还不满足写入数据所需的内存空间,则提示写入异常。
1.allkeys-lru:对所有的数据采用LRU(先进先出)算法。
2.volatile-random::对设置了过期时间的数据,采取“随机选取”算法移除数据。如果移除后的空闲内存还不满足写入数据所需的内存空间,则提示写入异常。
3.allkeys-random:对所有的数据采取“随机选取”算法移除数据,直到空闲内存满足写入数据所需的内存空间为止。
4.volatile-ttl:对设置了过期时间的数据采取TTL算法(最小存活时间),移除即将过期的数据。
5.uoeviction:不做任何干扰操作,直接返回写入异常。
APP开发如何设置过期时间
  Redis中可以通过下面的命令设置Key的超时时间。
EXPIRE key seconds
  超过超时时间后,该Key与对应的数据会被Redis删除。通过删除过期的Key,可以在定程度上优化内存的使用。当设置了超时时间的数据被修改后,设置的超时时间会失效。
  在Redis的每个数据库中(Redis有16个db,默认是使用db0),会使用下面的数据模型记录下所有设置了过期时间的Key和过期的时间(用时间戳表示,时间戳精确到毫秒),如图7-14所示。
Redis用如下的步骤检查某个Key是否过期
(1)检查Key是否存在于设置了过期时间的key中,如果存在,则取出过期时间。
(2)检查当前时间的时间戳是否大干Key的过期时间如果是的话,则表示Key己过期,否则,Key未过期
设置了Key的过期时间后Redis采用下面的两种策略删除过期的Key
1.惰性删除
  Redis操作Key时,如果发现Key已经过期了,则删除过期的Key。这种策略的好处是不占用过多的CPU资源,只有Redis操作Key时才检查,保证不会在其他Key上消耗CPU资源,坏处是只有操作Key时才检查该Key是否过期,这样过期的Key的数据依然长期存储在内存中,占据内存的空间。
  使用隋性删除策略时,如果内存中存在大量的过期的Key,而这些Key没有被访问过会占用大量的内存空间,操作系统无法释放内存。这种删除策略对于数据都存储于内存的Redis来说非常糟糕。
  如果App后台把Redis作为个存储系统,App业务当中肯定会存储些玲数据,例如些不活跃的用户数据,这些用户注册后不再打开App,就变成冷数据。这些冷数据的特点是当写入后很长时间内部不会被访问。如果只依赖于Redis的惰性删除,这部分冷数据直占用着内存,没法清理内存空间。
2.定期删除
Redis为了补救惰性删除策略的不足,释放更多的内存,也对过期的Key同时采用了定期删除的策略。
  定期删除策略是每隔段时间,Redis检查所有设置了过期时间的Key,如果发现当前时间已经超过了该Key的过期时间,就把Key和对应的数据删除。为了保证Redis的高性能,Redis执行定期删除策略的频率和时长都有限制。APP开发公司关于制作APP时怎样限制最大使用没存以及如何设置过期时间的经验介绍本文就到这里。博纳网络会定期更新关于APP开发方面的实操经验,希望本站的这类型的经验对您的工作有所帮助。谢谢关注。

当前文章链接:/construction/appkaifa/1658.html
如果您觉得案例还不错请帮忙分享:

[声明]本网转载网络媒体稿件是为了传播更多的信息,此类稿件不代表本网观点,本网不承担此类稿件侵权行为的连带责任。故此,如果您发现本网站的内容侵犯了您的版权,请您的相关内容发至此邮箱【qin@198bona.com 】,我们在确认后,会立即删除,保证您的版权。