Echo 的點(diǎn)贊模塊是怎么做的
點(diǎn)贊這個(gè)模塊能講的東西挺多的,它包含兩個(gè)小模塊:
1)實(shí)現(xiàn)點(diǎn)贊動(dòng)作:
支持對(duì)帖子、評(píng)論/回復(fù)點(diǎn)贊 第 1 次點(diǎn)贊,第 2 次點(diǎn)擊則取消點(diǎn)贊,并顯示用戶的點(diǎn)贊狀態(tài)
2)查詢獲贊數(shù)量:
查詢每篇帖子的獲贊數(shù)量 查詢每篇帖子和每個(gè)評(píng)論/回復(fù)的獲贊數(shù)量 查詢我的獲贊數(shù)量



Redis Key 規(guī)范
我們將點(diǎn)贊相關(guān)信息存入 Redis 中,關(guān)于 Redis 的配置這里就不說了。
需要特別注意的是,Redis key 命名需具有簡(jiǎn)潔性、可讀性以及可管理性,根據(jù)阿里云的 Redis 開發(fā)規(guī)范,我們給 Redis key 起名的時(shí)候需要遵守這樣的原則:
以業(yè)務(wù)名(或數(shù)據(jù)庫名)為前綴(防止key沖突),用冒號(hào)分隔,比如,業(yè)務(wù)名:表名:id 保證語義的前提下,控制 key 的長(zhǎng)度,當(dāng) key 較多時(shí),內(nèi)存占用也不容忽視
Echo 中,當(dāng)一個(gè)用戶 A(id = 11)給另一個(gè)用戶 B 的帖子(entityType = 1,entityId = 246)點(diǎn)了贊后,就會(huì)往 Redis 中存入這樣一條記錄:
key = like:entity:1:246, value = 11
key 的命名是這樣的 like:entity:entityType:entityId,顯然,like:entity 是不會(huì)變的,你可以把它理解為一個(gè)名為 like 的數(shù)據(jù)庫下的 entity 表,value 即代表點(diǎn)贊用戶 A 的 id。
上面這條記錄的意思就是 id = 11 的用戶對(duì)實(shí)體類型 1 即帖子進(jìn)行了點(diǎn)贊,該帖子的 id 是 246。
評(píng)論
圖片
表情
