缓存数据到Redis的函数的参数分别是哪些数据?

缓存数据到Redis的函数的参数分别是哪些数据?

function set_redis($name,$data){
    $redis=new Redis();
    $redis->connect('127.0.0.1',6379);
    $json=json_encode($data);
    $redis->set($name,$json);
}

首页一个项应该有:文章标题,内容、发布时间和评论数这几个数据,如果$data的值是这几个数据的数组转换为json。那$name应该是什么?文章id?

如果是文章id那为什么发布文章成功后要清空缓存,难道不是把新发布的文章加到缓存中去吗?旧的文章又没有改变为啥要清空后再缓存,白白增加计算量?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,1.name变量代表的是key值,在传值时如果同学使用一对多的模式进行添加,则同学定义一个key值,标明是此项目的数据即可。如果同学使用一条一条的添加,则同学可以使用id进行添加(唯一)。、

2. $data可以是存首页所有文章的二维数组,也可以如同学所说一条一条进行插入。具体添加什么内容同学可根据自身实现代码的逻辑进行选择。并没有固定要求。

祝学习愉快!

好帮手慕小尤 2020-10-14 16:21:55

同学你好,1. Redis类的set()方法是存储一个键值,第一个参数是key值,第二个参数是数据。如下图所示:

http://img1.sycdn.imooc.com//climg/5f86b3fa093982ec05490315.jpg

2. 如果数据库中数据发生改变,则redis缓存中的数据也应该进行改变,从而需要删除之前缓存的内容,然后重新进行添加缓存,从而实现数据库与redis的同步。

注:因缓存的存储格式是一对多(一个key值,存储了多条数据),所以建议整体删除,重新存储缓存。

祝学习愉快! 

  • 提问者 Tomcath #1
    我知道是键值对,我的意思是应该传什么进去,传哪个给$name,$name有点意义不明啊,用文章的id作为key吗?$data是存首页所有文章的二维数组?为什么不拆分为一篇文章一个键值对呢?
    2020-10-14 16:27:08
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP典型功能与Laravel5框架开发
  • 参与学习           人
  • 解答问题       722    个

掌握开发中必备技能解锁缓存、支付,邮件和短信发送等高端接口运用,直击工作重难点,通过开发简书项目熟练掌握Laravel5的开发技术。完成以上三个阶段的学习,成为满足企业需求的开发工程师。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师