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

关于Redis使用的一点疑问(数据更新)

关于Redis使用的一点疑问(数据更新)

PHP
倚天杖 2019-03-18 15:36:14
我怎么觉得redis更新数据很麻烦,是我的理解有问题吗? 现在我是这样的操作. 假设有如下一系列操作存储了多级商品分类的数组$classify通过json_encode()序列化后存入了Redis,key为classify查一个id为1的分类的时候先查Redis这个classify存在不存在,存在就取出来json_decode()反序列化,然后再找有没有这个id为1的分类,没有的话去数据库中查把这个查到的分类结果$result放进数组$classify,再序列化后存入Redis.(空的结果存个相应的空数组进去防止缓存穿透) 每次有数据更新的话,感觉很麻烦啊,取出来反序列化,数组一系列操作,然后再序列化set进去.能不能有别的存储方式,直接能把$result插入到redis中相应的位置?望大神赐教
查看完整描述

2 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

采用hash会方便一下,hash就相当于对应数据库的一条字段了

https://img1.sycdn.imooc.com//5c8f4a6d0001a9c808000237.jpg

查看完整回答
反对 回复 2019-03-18
?
忽然笑

TA贡献1806条经验 获得超5个赞

通过json_encode()序列化后存入了Redis,key为classify
这里其实能否改改key,不要用序列化。key改成多个,这样:
classify_id_1;classify_id_2;classify_id_3;classify_id_4;
查找起来就好用id查,而且要全部取出(就是还原成你上面那 数组$classify
可以用 KEYS classify_id_* 来取出全部
你看可行不

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

添加回答

举报

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