邀请好友只注册赚钱原创文学网 - 纯净的绿色文学家园 !

邀请好友只注册赚钱

邀请好友只注册赚钱(全文在线阅读> 

“咳!”明珠轻轻咳嗽一声,提醒他们两个要注意影响,大庭广众之下,别这么含情脉脉的。

梦见别人开店做生意

在他的面前,确确实实存在着一条大河,这条河之宽就像黄河一般,在这山中怎么可能有这么宽的河呢,这让叶扬心中顿时充满了惊骇。
“来的这么快!”躲进树林之中正是李虎,按照林风交代先行骑快马赶奔清风谷查探地形,不想归来途中遇到同样前往清风谷布置豹组众人,三十人精锐面对阵营残破不堪十户营依然如此小心,一切完全都是因为林风。

柳梦璃沉吟了片刻点了点头,她并非贪心之人,而是她读懂了刘皓的这一句话的意思,很简单,天予弗取反受其咎,上天都给了你那么好的机遇了,如果都不懂得把握的话以后遇到麻烦的时候很可能会因为错过了今日的机遇而无法度过,到时候反而会遭受到了巨大的困境。

PHP+Redis 实例【二】页面缓存 新玩法


今天算是认识到博客园里的审查团队多内幕了,哈哈,贴个图玩下。

气死宝宝了。

进入主题!

今天就不写什么功能性的了,换下口味说下关于页面级的缓存,应该怎么做。

相信有很多小伙伴查了百度,甚至google,看了很多文章,以前我也这样做了,但是发现,上面写的真的不知所云。

有两点可以看出他们哪里不行:

  • 第一,网上有很多种写法,只要你稍微有点redis基础,就是懂得redis的五种数据结构的用法,就会发现很明显的错误,连接口都写错了。
  • 第二,缓存时间,你会发现很多他们写了缓存,但是没有缓存的过期时间,这是致命伤,没有什么缓存是不过期的,只是缓存的时间长短而已。你可以给10秒,也可以给10个月。看你具体的业务而定。后面会教你如何判断时间长短。

上面就是判断网上一些写页面缓存的文章好不好的依据,每个人的用法总会有点不一样,小弟也不敢妄下定论,仅供参考。

前提分析!

还是直接上图:

上面的图,我分为了三个层级去做页面缓存,其实不一定要三个层面都实现的,如果你做了页面级的,项目初期是够了,作为接口级,基本可以解决很多吞吐量。

对于上面的三个层级,我用了同一个方法去做。

知识准备:

  • string redis数据结构(这里我一直都找不到更好的替代品,string主要是方便我操作它的过期时间
  • expire()函数,设置键的生存时间。
  • exists()函数,判断键是否存在。(判断的方法有很多种,ttl()获取它的生存时间,get()函数,判断是否有数据(不过get判断最好不用))。

好了,废话说完了,直接上代码!

 1 <?php
 2 class Test
 3 {
 4     public $redis = null;
 5 
 6     public function __construct()
 7     {
 8         $this->redis = new Redis();
 9         $this->redis->connect("127.0.0.1",6379);
10         $this->redis->auth("");
11     }
12     //这里是个例子模型,按照自己的用法去套进去就行
13     //以文章为例子吧
14     //页面级,接口级都可以用
15     public function getData()
16     {
17         //判断缓存的键是否还存在
18         if(!$this->redis->exists("cache:".$commentid))
19         {
20             //缓存不存在
21             //下面的get_mysql_data()函数只是个例子,按照自己具体情况去mysql获取数据
22             $data = $this->get_mysql_data();
23             $json = json_encode($data,JSON_UNESCAPED_UNICODE);
24             //存入redis
25             $this->redis->set("cache:".$commentid,$json);
26             //设置过期时间5分钟
27             $this->redis->expire("cache:".$commentid,60*60*5);
28         }
29 
30         $json = $this->redis->get("cache:".$commentid);
31         $data = json_decode($json,true);
32         return $data;
33     }
34 }

对于上面的代码有几点提示:

  • 上面只是一个例子,看你自己具体的使用去定
  • 其中mysql数据获取的哪里,要看你自己mysql使用mysqli或者pdo等等方法获取的,哪里随便你替换。
  • 过期时间哪里等下就说
  • 看到30.31行,那里为什么重新从redis拿多一次数据呢?为什么不直接返回mysql的$data不就行了,其实是可以的,只是为了防止redis没有把数据缓存进去,而做的一步,还有一步报错,我没写,自己添加进去吧。

下面说下怎么设置过期时间:

这个是没有一个统一的说法的,第一根据你的项目阶段,第二是用户流量的多少,第三是数据的冷热程度等方面去判断。

项目阶段:其实和用户流量有很多的关联,举个例子,假设你的项目在初期,但是用户已经爆炸了,这时,设置的缓存时间可以贼短,哪怕2秒,都能帮你解决很大的吞吐量。

冷热程度:冷指的是用户浏览次数少的,热的就很明显啦,热还有一种特殊的代表,数据的更新频率,更新频率高的应该时间约短。

特殊操作:更新部分数据时,可以考虑将对应的缓存键时间设为过期,这样用户看到的数据都是最新的,而且缓存功能依然存在,设置生存时间过期,很简单,expire设置为0就可以了

另一种页面缓存:

下面介绍一种不一样的数据缓存:

突然不想写了,因为我感觉上面的做法算是涵盖了,算是上面的接口级的做法。我就简单说下算了。

这里还是以文章为例子吧,我们论坛里最多的肯定是文章啦,那文章的热度肯定有排序的。对于热文章的访问量是比较大的,然后我们就要缓存假设排名在10000名之内的文章,对于超出这个数的文章,可以不用缓存。

这里顺便预告下,下篇文章是写关于排行榜的,日榜,周榜,年度榜该怎样做。

欢迎交流!

当前文章:http://peakfog.com/kan/ku2arecdlv.html

发布时间:2019-03-20 13:41:19

试赚 电脑挂机赚钱件一天50 花赚利息是多少 淘宝联盟怎么挣钱的 网上任务赚钱哪个好 学生网上打字赚钱平台 用电脑可以做什么兼职? 自己干点什么能赚钱

新口子推广佣金 云商宝借条类口子 赚中小学生钱的项目 脉脉提现是真的吗 多种网络赚钱方法推荐 出版社包书打字 微信签到功能 佣金比例1%是多少 5点下班的公务员 打码赚钱吗 家里兼职赚钱 哪种网络游戏能赚钱 青浦oc兼职网日结工资 三甲医院下午几点下班 通过微信公众号赚钱 网络小说赚钱吗 微信一元提现赚钱软件 有哪些赚钱论坛 转发小说赚钱的网站

编辑:华开董董

 
分享到: 更多
作品集
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐文章
  • 花莲地震中失联的加拿大籍香港夫妇已寻获 皆无生命迹象

    黑暗暴龙兽看到来势凶猛的恶魔之爪眼中闪过了一丝凝重,现在恶魔兽实在是太强了,比其他遇到过的所有数码宝贝都要强,如果不是之前吞噬了猛鬼兽大帝的资料和之前一次过吞噬了好几个黑色齿轮,现在的黑暗暴龙兽也很难和巨大恶魔兽打。...

  • 2017年度“云课堂”研修项目工作有序推进

    叶扬耸了耸肩说道:“当然是真的了,我可不想去教一个大老爷们”。...

  • 解决混动车安全问题 本田是如何做到的?

    而且据说那种存活几十年甚至上百年的黄金鳟鱼,它们的骨头都会变成金黄色的。为了能够将这黄金鳟鱼完全呈现出来,叶扬弄得是生鱼片。...

  • 《七大罪》第240话: 七罪败逃 再折一将!

    战马在鲜血汇成的溪流中狂奔,溅起大片的血水,染红了战马的四肢,史思明已经丧胆,当第一声天雷爆炸响起时,他便知道大势已去,是唐军来了,他只有一个念头,逃离大营,保住性命,这两万军队的死活,他已经不在意了,他还有三万军在外面,只离开了一个下午,他无比庆幸自己的决定,竟让他在绝境中觅到了一条生路。...

  • 特朗普连发数条推文反击"通俄门"调查 剑指希拉里

    这个时候,叶扬嘎嘎的站了起来,他似乎一丁点事情也没有,对着王莽微微一笑说道:“谢谢你”。...

  • 动画产业衰退危机 日本呼吁别让中韩抢饭碗

    当然这种手段有很多种,最冷酷的莫过于爱人赤裸裸的背叛,月影做到了,用她貌美的身材还有熟悉的术俘获了这个男人,当她看到悲伤欲绝掩面而去的阿奴,冷月影心底升起一丝报复的快意,还有死去的孩子加上死去的丈夫,利用蛊术之法将三人做成怨恨最强大的人蛊。...