为了账号安全,请及时绑定邮箱和手机立即绑定

php 用 redis 缓存商品信息的思路 。

php 用 redis 缓存商品信息的思路 。

PHP
拉风的咖菲猫 2019-03-05 12:36:11
虽然知道用redis 缓存 商品数组信息 , 但是不知道思路。 缓存商品信息的时候用一个key -> value 对应一个商品的 id 和 数组 , 是系统一启动就把 商品表的所有 信息缓存起来吗 ??
查看完整描述

5 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

如果是电商网站,Redis的用法有好几种,我这里只说一种抛砖引玉。我们都知道,一个商城的产品千千万,你不可能缓存所有的,但是可以缓存【客户喜欢的商品】。因为商城最终的目的不单单是让客人觉得速度快,而是让客人觉得总能找到自己心仪的产品。所以可以根据自己的产品规则定义用户喜好行为,比如说主动点击某种产品,搜索某种产品名称,在某产品页面停留时间过长...

// 用户点开某一个产品:
$redis->hmset( 'product:1000' , [
    'name' => '电热毯',
    'price' => '1300',
    'category' => ['电器','床上用品','毛毯'],
    ......
]);
// 把相关类别的like值累加
$redis->hIncrBy('category:电器', 'like', 1); 
$redis->hIncrBy('category:床上用品', 'like', 1); 
$redis->hIncrBy('category:电器毛毯', 'like', 1); 
 
// 然后在购物车里面可以直接得到产品
$redis->hGetAll('product:1000');

// 并且可以根据获得的种类分数挑选出 可能喜欢的产品
$redis->hGetAll('category');

以上是个粗简的例子,只在于说明用法之一,仅供参考。

查看完整回答
反对 回复 2019-03-18
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

你用的是什么电商系统?实际上一些流行的电商框架,比如ecshop其实不使用redis,而是用的文件缓存,redis实际上不适合做电商里商品的缓存。我以前用过国外的电商系统magento 同样是文件缓存,它是在初始化的时候将所有的xml配置文件里的内容全部缓存起来,当然在深层的运作机理我也没研究过

查看完整回答
反对 回复 2019-03-18
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

比如查找商品的时候,首先去缓存里面去查找,如果缓存中有,就返回,否则需要去数据库中查询,然后返回.具体怎么用的工作中的项目目前还没有遇到过。。。

查看完整回答
反对 回复 2019-03-18
?
繁星coding

TA贡献1797条经验 获得超4个赞

个人拙见:
1.使用redis缓存商品的数组信息,首先 如果必要,只缓存商品的部分信息,提高网站的加载速度,比如说商品的列表页面,只需要商品的名称,价格部分信息,在详情页面因为是单次查询速度还是比较快的.
2.相对来说,商城不做一些高并发,秒杀等业务,缓存信息如上回答,用文件做缓存相对比较理想.
3.redis如果做整个页面的数据缓存用的还是相对来说比较少的

查看完整回答
反对 回复 2019-03-18
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

商品页面要渲染的太多,缓存文件是必须的,数据也可以缓存

查看完整回答
反对 回复 2019-03-18
  • 5 回答
  • 0 关注
  • 747 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信