YzmCMS V5.8系统标签新增数据缓存功能

1755次浏览 更新日期:2020-08-09 15:23:28 分类:谈天说地 评论:8

有这样一个场景,


数据不需要实时更新,且网站访问量又大,如果每条数据都要从数据库里查询数据的话,将对数据库造成很大的压力,之前的解决办法是使用YzmCMS生成静态HTML插件,这个插件确实解决了数据库压力问题,但需要经常手动生成静态HTML文件,比较麻烦,而且生成的HTML文件又占用大量的服务器空间,有没有一个功能是介于动态和静态两者之间的呢?即不经常查询数据库,又不需要经常手动更新HTML,这个解决方法来了。


YzmCMS V5.8系统标签新增数据缓存功能


系统的所有的标签都支持做数据缓存,但主要还是用在不需要实时更新的数据上,例如栏目排行榜、评论排行榜等场景,举个例子:

之前的栏目点击排行标签:

{m:hits field="title,url,color,inputtime" catid="$catid" limit="10"}
{loop $data $v}
   <li><span class="date">{date('m-d',$v['inputtime'])}</span><a href="{$v[url]}" title="{$v[title]}" target="_blank">{title_color($v['title'], $v['color'])}</a></li> 
{/loop}


做数据缓存的栏目排行标签:

{m:hits field="title,url,color,inputtime" catid="$catid" limit="10" cache="3600"}
{loop $data $v}
   <li><span class="date">{date('m-d',$v['inputtime'])}</span><a href="{$v[url]}" title="{$v[title]}" target="_blank">{title_color($v['title'], $v['color'])}</a></li> 
{/loop}


仔细看就会发现,其实标签加了一个 cache 属性,该属性的值是一个缓存时间,单位为秒,例如以上的实例数据则是3600秒内使用缓存数据,过期之后将自动读取数据库生成新的缓存数据,该缓存数据根据缓存配置可生成到文件file、redis、memcache里,非常的简单方便,如果网站访问人数比较大、或数据量大的话,使用缓存效果很明显的,可以提高页面响应速度,减少数据库压力。


生成静态HTML文件、标签数据缓存、动态实时更新,这些功能合理使用可以使YzmCMS搭建的网站承受更大的负载!

关于YzmCMS百万数据负载测试,请看另外一个文章:https://blog.yzmcms.com/php/157.html


我来说两句
  • fkadmin
    fkadmin 4年前
    本文看了极度舒适,老大辛苦了,静候5.8。
    0
    回复
  • sim86
    sim86 4年前
    赞,期待5.8
    0
    回复
  • 这是要马上发布5.8的节奏啊。赞!
    0
    回复
  • 赞,期待5.8
    0
    回复
  • 这个功能不错。可以设定发布文章后,同步更新哪些标签的缓存
    0
    回复
  • wanmei
    wanmei 4年前
    0
    回复
  • kinji
    kinji 4年前
    赞,期待5.8
    0
    回复
  • none
    none 4年前
    现在用PC上网的人不多,现在是移动设备的时代了,生成静态HTML解决数据库压力是个好事儿,不过怎么解决移动端的压力呢?app 或者小程序不需要静态HTML的呀。
    0
    回复
作者信息
发布见解
发内容 回顶部