鍍金池/ 問答/人工智能  Java  PHP/ 關(guān)于Redis使用的一點(diǎn)疑問(數(shù)據(jù)更新)

關(guān)于Redis使用的一點(diǎn)疑問(數(shù)據(jù)更新)

我怎么覺得redis更新數(shù)據(jù)很麻煩,是我的理解有問題嗎?

現(xiàn)在我是這樣的操作.


假設(shè)有如下一系列操作
存儲了多級商品分類的數(shù)組$classify
通過json_encode()序列化后存入了Redis,keyclassify
查一個id1的分類的時候
先查Redis這個classify存在不存在,存在就取出來json_decode()反序列化,然后再找有沒有這個id1的分類,沒有的話去數(shù)據(jù)庫中查
把這個查到的分類結(jié)果$result放進(jìn)數(shù)組$classify,再序列化后存入Redis.(空的結(jié)果存?zhèn)€相應(yīng)的空數(shù)組進(jìn)去防止緩存穿透)


每次有數(shù)據(jù)更新的話,感覺很麻煩啊,取出來反序列化,數(shù)組一系列操作,然后再序列化set進(jìn)去.
能不能有別的存儲方式,直接能把$result插入到redis中相應(yīng)的位置?
望大神賜教

回答
編輯回答
青黛色

通過json_encode()序列化后存入了Redis,key為classify
這里其實(shí)能否改改key,不要用序列化。key改成多個,這樣:
classify_id_1;classify_id_2;classify_id_3;classify_id_4;
查找起來就好用id查,而且要全部取出(就是還原成你上面那 數(shù)組$classify
可以用 KEYS classify_id_* 來取出全部
你看可行不

2017年5月19日 21:13
編輯回答
玩控

采用hash會方便一下,hash就相當(dāng)于對應(yīng)數(shù)據(jù)庫的一條字段了

clipboard.png

2017年9月29日 09:56