kv存儲 - 怎樣用 Redis 緩存微博的評論列表?
問題描述
我不知道微博的評論是不是用了Redis緩存,我只是拿他來做為一個例子而已。通用的場景是:用Redis緩存有序的對象列表,要求可以對對象進行增、刪、查操作。
我以微博的評論來說,之前跟其它人交流時,是用zset或list。如果用zset,每個元素是評論id,評論時間做score,而評論的內(nèi)容無法存儲,只能根據(jù)id再查mysql等數(shù)據(jù)庫。如果用list,每個元素是一個hash的json序列化(包含評論id,評論內(nèi)容,評論時間等),這樣的話貌似沒有辦法實現(xiàn)根據(jù)評論id刪除評論了? 當(dāng)然,list的元素也可直接用評論id,那這樣的話,其實跟用zset差不多。
不知道大家有沒有更好的方案實現(xiàn)“用Redis緩存有序的對象列表,要求可以對對象進行增、刪、查、分頁操作”
問題解答
回答1:如果用zset,每個元素是評論id,而評論的內(nèi)容無法存儲,只能根據(jù)id再查mysql等數(shù)據(jù)庫
zadd 微博 評論id 評論id+評論的內(nèi)容id做scope,可以用id刪除,后面的評論內(nèi)容也能顯示。
之前看到過這個問題,當(dāng)時沒有回,因為你舉的例子看不太懂,隔了這么多天還沒人回你,我就來說一下吧,你的例子讓人看不太懂!上面的解決辦法也就只能是按你說的實際例子來說一下。
回答2:用list保存評論id,然后每條評論以id為key保存成hash。另外,一般還需要給這些鍵設(shè)置過期時間
相關(guān)文章:
1. javascript - sublime快鍵鍵問題2. 實現(xiàn)bing搜索工具urlAPI提交3. javascript - 移動端上不能實現(xiàn)拖拽布局嗎?4. boot2docker無法啟動5. thinkPHP5中獲取數(shù)據(jù)庫數(shù)據(jù)后默認選中下拉框的值,傳遞到后臺消失不見。有圖有代碼,希望有人幫忙6. 前端 - 這段代碼一直生效不了,查半天因為 top: 0px; 分號后一個隱藏的東西,也不是占位符...刪了就可以生效,這是什么情況。。7. angular.js - 單頁應(yīng)用(ng/vue)該如何監(jiān)聽用戶離開當(dāng)前頁面(或者路由)?8. nginx bind failed9. javascript - 如何判斷不同兩個對象觸發(fā)同一事件?10. javascript - react native在run-android時出現(xiàn)這個錯誤該怎么解決?大神賜教

網(wǎng)公網(wǎng)安備