1. XenForo 1.5.14 中文版——支持中文搜索!现已发布!查看详情
  2. Xenforo 爱好者讨论群:215909318 XenForo专区

新闻 AutoLoadCache 5.2 发布 下载

本帖由 漂亮的石头2017-04-13 发布。版面名称:软件资讯

  1. 漂亮的石头

    漂亮的石头 版主 管理成员

    注册:
    2012-02-10
    帖子:
    487,979
    赞:
    47
    5.2 版本只是优化一些小细节上的东西:


    1. 更新fastjson,因为 fastjson 1.2.28之前的版本有安全漏洞,所以需要及时更新;


    2. 增加一些debug信息;


    3. 当缓存时行设置为小于0的值时,不进行缓存。

    最后附上和网友沟通中遇到的“空”处理问题:

    非常多人都有这样的误区,认为数据层返回数据如果是“空”时(这里的空指的是:null或集合里为空)就不进行缓存了,这样才能实现数据的及时更新。对于这个情况,还是要分情况处理的。


    1. 数据为“空”是人为造成的,不是真的没有数据. 非常典型的例子就是,异常处理不当造成的:直接使用try,catch,然后直接就返回null,或者一个空的集合。这样的做法非常不合理,使用者根本无法知道,是真的没有数据,还是因为有异常造成的,我们更无法确定要不要缓存这类数据了。所以我们在实现数据层接口时,一定要合理使用异常处理。


    2. 数据“真的”为“空”时,建议缓存起来. 我们使用缓存的目的之一,就是防止缓存失效后直接穿透到数据层,造成系统负载过高。所以如果获取这个数据并发突然上来了,很容易造成系统瘫痪。如果只是尽快更新缓存中的数据,达到更好的“实时”性,可以减小缓存时间来实现。在AutoLoadCache 已经支持这种处理机制,只要在@Cache中,使用expireExpression,可以动态设置缓存时长,如:

    @Cache(key = "...", expireExpression = "#empty(#retVal) ? 60: 120")

    而且数据为“空”,它是有它实际意义的,就是告诉我们现在没有数据, 不要忽略这点。

    附:最佳实战
    AutoLoadCache 5.2 发布下载地址
     
正在加载...