精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

點贊功能,用MySQL還是Redis

移動開發 Android Redis
點贊功能是目前app開發基本的功能,今天我們就來聊聊 點贊、評論、收藏等這些場景的db數據庫設計問題,

點贊功能是目前app開發基本的功能

今天我們就來聊聊 點贊、評論、收藏等這些場景的db數據庫設計問題,

1. 我們先來看看場景的需求:

  • 顯示點贊數量
  • 判斷用戶是否點過贊,用于去重,必須的判斷
  • 顯示個人點贊列表,一般在用戶中心
  • 顯示文章點贊列表

我們先看一下頭條和微博的例子 

點贊功能,用mysql還是redis?
頭條的點贊

 

點贊功能,用mysql還是redis?
微博的點贊

這兩個都是具有頂級流量的,后端肯定有復雜的架構,我們今天只談大眾化的方案。

2.1 mysql方案

mysql方案, 隨著nosql的流行,大數據的持續熱點,但是mysql仍然不可替代,對于大多數的中小項目,低于千萬級的數據量,采用mysql分表+cache,是完全可以勝任的,而且穩定性是其他方案無可比擬的:

  1. 文章表 
  2.  
  3. create table post { 
  4.  
  5.         post_id int(11) NOT NULL AUTO_INCREMENT, 
  6.  
  7.         ...... 
  8.  
  9.         star_num int(11) COMMENT '點贊數量' 
  10.  
  11.  
  12. 用戶表 
  13.  
  14. create table user { 
  15.  
  16.         user_id int(11) NOT NULL AUTO_INCREMENT, 
  17.  
  18.         ...... 
  19.  
  20.         star_num int(11) COMMENT '點贊數量' 
  21.  
  22.  
  23. 點贊表 
  24.  
  25. create table star { 
  26.  
  27.         id int(11) NOT NULL AUTO_INCREMENT, 
  28.  
  29.         post_id, 
  30.  
  31.         user_id, 
  32.  
  33.         ...... 
  34.  

常用的查詢:

  1. 查詢用戶點贊過的文章 select post_id from star where user_id=?  
  2. 查詢文章的點贊用戶 select user_id from star where post_id=? 

點贊數量可以通過定時異步統計更新到post和user 表中。

數據量不大的時候,這種設計基本可以滿足需求了,

缺點:

  • 數據量大時,一張表在查詢時壓力巨大,需要分表,而不論用post_id還是user_id來hash分表都與我們的需求有沖突,唯一的辦法就是做兩個表冗余。這增加了存儲空間和維護工作量,還可能有一致性問題。

2.2 redis方案

當數據量達到上億的量,上cache是必經的階段,由于點贊這種動作很隨意,很多人看到大拇指就想點,所以數據量增長很快,數據規模上來后,對mysql讀寫都有很大的壓力,這時就要考慮memcache、redis進行存儲或cache。

為什么一般都選擇redis, redis作為流行的nosql,有著豐富的數據類型,可以適應多個場景的需求。

采用redis有兩種用途,一種是storage,一種是純cache,需要+mysql一起。純cache就是把數據從mysql先寫入redis,用戶先讀cache,miss后再拉取MySQL,同時cache做同步。 

點贊功能,用mysql還是redis?
cache

多數場景二者是同時使用的,并不沖突。

下面說下redis作為storage的方案:

場景a :顯示點贊數量

在點贊的地方,只是顯示一個點贊數量,能區分用戶是否點贊過,一般用戶不關心這個列表,這個場景只要一個數字就可以了,當數量比較大時,一般顯示為"7k" ,"10W" 這樣。

以文章id為key

  1. //以文章id=888為例  
  2. 127.0.0.1:6379[2]> set star:tid:888 898 //設置點贊數量  
  3. OK  
  4. 127.0.0.1:6379[2]> incr star:tid:888 //實現數量自增 (integer)  
  5. 899 

場景b:點贊去重,避免重復點贊

要實現這個需求,必須有文章點贊的uid列表,以uid為key場景c:一般在用戶中心,可以看到用戶自己的點贊列表

這個需求可以使用場景b的數據來實現。 

點贊功能,用mysql還是redis?
用戶中心點贊列表

場景d:文章的點贊列表,類似場景b,以文章id為key

  1. //以文章id=888為例  
  2. 127.0.0.1:6379[2]> sadd star:list:tid:888 123 456 789  //點贊uid列表 (integer)  
  3. 3  
  4. 127.0.0.1:6379[2]> sismember star:list:tid:888 456  //判斷是否點贊 (integer)  

點贊的地方,如果點贊過顯示紅色,沒有則顯示黑白色,

今日頭條是沒有地方可以看到點贊列表的,而微博點進去,詳情頁可以看到點贊列表,但是只會顯示最近的幾十條,沒有分頁顯示。

如下圖,我選了一條熱點,擁有眾多粉絲的“豬豬” 

點贊功能,用mysql還是redis?
帖子點贊列表

可能有人覺得,點贊列表沒人關心,存儲又會浪費大量資源,不如不存!但是,這個數據是必須要有的。兩點:

a. 去重。點贊數可以不精確,但去重必須是精確的,

b.另外一個社交產品,用戶行為的一點一滴都需要記錄,對于后續的用戶行為分析和數據挖掘都是有意義的。

上面使用string存儲的用戶點贊數量,除了string,還可以用hash來存儲,對文章id分塊,每100個存到一個hash,分別存入hash table,每個文章id為hash的一個key,value存儲點贊的用戶id,如果點贊用戶很多,避免id過多產生性能問題,可以單列出來,用sorted set結構保存,熱點的畢竟是少數。 

點贊功能,用mysql還是redis?
hash

方案優缺點比對

hash:使用了更少的全局key ,節省了內存空間;但是也帶來了問題

如何根據文章id路由到對應的hash?

查找一個用戶id是在hash還是set?存在不確定性

使用hash雖然節省了空間,但增加了復雜度,如何選擇就看個人需求了。

除此之外,你還有其他的方法嗎?

3. 數據一致性

redis作為storage使用時,一定要做好數據的持久化,必須開啟 rdb 和 aof,這會導致業務只能使用一半的機器內存,所以要做好容量的監控,及時擴容。

另外只要有數據copy,就會有一致性問題,這就是另外一個很重要的話題了。以后有時間再細聊吧!

寫在最后:把問題寫明白,真不是一件容易的事情,請大家多多關注,留言,謝謝!

前幾天寫的一篇文章,受到眾多同行的熱情回復,能和眾多同行一起交流,深感榮幸!對于工程類問題,沒有標準的方案,一千個人有一千個方案,哪個最適合你只有你自己知道!期待你更好的思路和方法。

 

責任編輯:未麗燕 來源: 今日頭條
相關推薦

2020-07-02 16:40:40

MySQLRedis數據庫

2020-01-10 15:15:53

Redis點贊數據庫

2020-12-03 11:00:29

Spring ClouRedis數據庫

2015-07-17 10:41:59

點贊按鈕

2021-08-10 15:37:34

鴻蒙HarmonyOS應用

2021-04-14 14:28:14

Python點攢抖音

2020-11-16 12:55:41

Redis分布式鎖Zookeeper

2019-07-16 09:22:10

RedisZookeeper分布式鎖

2024-02-26 08:25:00

模型訓練

2025-06-13 08:26:08

JetpackCompose按鈕

2025-02-17 09:20:00

MySQL存儲數據庫

2020-08-21 10:41:07

微信隱藏點評評論

2025-04-28 14:02:08

ChatGPTOpenAI醫療助手

2019-08-28 10:44:48

RedisJava文章

2018-05-10 16:47:10

戴爾

2015-07-21 15:22:20

點贊仿知乎按鈕動畫

2025-08-11 09:13:31

2020-02-10 16:02:29

東華軟件

2019-10-23 09:48:46

RedisMySQLMongoDB

2021-09-06 06:45:07

NacosUdp通信
點贊
收藏

51CTO技術棧公眾號

牛牛国产精品| 国产在线xxx| 奇米精品一区二区三区四区| 亚洲欧美精品中文字幕在线| 你真棒插曲来救救我在线观看| 午夜精品久久久久久久99热黄桃| 97久久视频| 91精品国产手机| 可以免费看的黄色网址| 亚洲精品久久久狠狠狠爱 | 国产亚洲二区| 久久99精品波多结衣一区| 图片婷婷一区| 欧美视频一区二区三区四区| 乱子伦一区二区| 亚洲精品国偷拍自产在线观看蜜桃 | 亚洲综合999| 久久精品欧美| 一区二区视频在线免费观看| 伊人久久大香线| 亚洲第一免费网站| 日本中文字幕片| 91福利在线视频| 男女男精品视频网| 欧美华人在线视频| 毛片网站免费观看| 亚洲日本免费电影| 天天亚洲美女在线视频| 日韩亚洲视频| 亚洲高清精品视频| 日韩激情在线观看| 欧美国产日产韩国视频| 欧美做受高潮6| 欧美不卡在线观看| 日韩欧美主播在线| 三级在线免费观看| 国产免费av在线| 韩国三级电影一区二区| 91国内产香蕉| 污污的视频在线免费观看| 精品无人区一区二区| 欧美视频一区二区三区| 人妻av中文系列| 91在线品视觉盛宴免费| 成人午夜激情在线| 成人日韩在线电影| 成人av网站在线播放| 首页国产精品| 精品中文视频在线| 国产成人精品一区二区在线小狼| 国产经典一区| 亚洲综合色区另类av| 一区二区三区视频在线播放| 视频在线不卡| 国产伦精品一区二区三区免费 | 天堂在线观看视频| 精品在线播放午夜| 热门国产精品亚洲第一区在线| 久草中文在线视频| 91精品高清| 中文字幕免费国产精品| 国产福利短视频| 日韩在线成人| 欧美一区二区在线免费观看| 超碰在线播放91| 欧美香蕉视频| 欧美日韩国产精品| 奇米影视亚洲色图| 日本高清成人vr专区| 欧美高清在线精品一区| 欧美日韩高清在线一区| 天堂中文字幕av| 国产成人免费视| 亚洲在线视频观看| 国产福利视频导航| 国产精品一二三在| 亚洲综合在线播放| 精品久久久久成人码免费动漫| 国内精品第一页| 成人福利视频网| 国产露脸无套对白在线播放| 国产精品1区2区3区在线观看| 懂色一区二区三区av片| 五月婷婷深深爱| 久久精品一区四区| 亚洲一区二区三区午夜| 黑人极品ⅴideos精品欧美棵| 成人免费观看在线观看| 91看片淫黄大片一级在线观看| 久久精品ww人人做人人爽| 九色网友自拍视频手机在线| 国产精品久久久久天堂| 一卡二卡三卡视频| 三级成人在线| 日韩一级片在线观看| 中国xxxx性xxxx产国| 精品国产视频| 欧美激情xxxx| 少妇一级淫片日本| 国产成人h网站| 欧洲精品码一区二区三区免费看| 日韩av中文| 午夜电影久久久| 欧美wwwwwww| 澳门久久精品| 中文字幕亚洲无线码在线一区| 激情四射综合网| 日日夜夜免费精品| 成人在线观看91| 成年人在线免费观看| 亚洲精品国产成人久久av盗摄| 欧美二区在线视频| 精品一区二区三区视频在线播放| 日韩久久免费视频| 国产女片a归国片aa| 葵司免费一区二区三区四区五区| 成人免费黄色网| 毛片在线免费| 亚洲成人动漫精品| 在线免费黄色网| 国产欧美亚洲精品a| 欧美激情一二三| 一级黄色片网站| 91视频com| 国产在线xxxx| 精品成人18| 色久欧美在线视频观看| 国产精品一区二区三区四| 国产成人精品免费一区二区| 亚洲午夜高清视频| 亚洲第一会所001| 亚洲国内精品视频| 国产亚洲自拍av| 国产麻豆精品在线| 91手机视频在线| 成人在线视频免费看| 精品视频偷偷看在线观看| 久久免费公开视频| 国产成人8x视频一区二区| 伊人av成人| 99久久伊人| 国产小视频国产精品| 日韩av片在线播放| 不卡一二三区首页| 国产美女主播在线播放| 91麻豆精品激情在线观看最新 | 91精品网站| 黄色大片在线播放| 欧美酷刑日本凌虐凌虐| 91香蕉国产视频| 免费xxxx性欧美18vr| 日韩欧美亚洲日产国| 桃花岛成人影院| 亚洲欧美中文日韩在线| 国产视频1区2区| 久久亚洲一级片| 北条麻妃在线一区| 精品国产aⅴ| 国产精品入口免费视| h视频在线观看免费| 欧美私人免费视频| 97精品在线播放| 激情综合色播五月| 伊人再见免费在线观看高清版| 日韩08精品| 欧美极品xxxx| 亚洲av成人精品一区二区三区在线播放 | 一级毛片久久久| 亚洲色图美腿丝袜| 精品国产青草久久久久96| 国产精品久久夜| 无套白嫩进入乌克兰美女| 欧美久久99| 精品欧美日韩在线| 欧美成人ⅴideosxxxxx| 综合网中文字幕| 国产理论视频在线观看| 亚洲韩国精品一区| 国产精品伦子伦| 日韩成人一区二区三区在线观看| 夜夜爽www精品| 亚洲一区二区三区免费| 91爱视频在线| www.亚洲免费| 日韩精品一区二区三区蜜臀| 国产情侣在线视频| 中文在线一区二区| 自拍视频第一页| 噜噜噜91成人网| 欧美日韩亚洲国产成人| 精品三级av| 国产精品老牛影院在线观看| 在线播放免费av| 国产视频自拍一区| 一级片视频免费| 亚洲成人免费视| 美国精品一区二区| 成人动漫av在线| 日韩一级免费片| 亚洲国产高清一区| 亚洲精品无人区| 久久精品福利| 国产综合久久久久| 亚洲人体视频| 久久69精品久久久久久久电影好| 能在线看的av| 精品粉嫩超白一线天av| 一区二区三区www污污污网站| 亚洲福利视频一区| sm捆绑调教视频| 久久综合九色综合欧美亚洲| 一级淫片在线观看| 麻豆91精品| 成年人深夜视频| 99久久激情| 欧美国产一区二区在线| 亚洲天堂中文字幕在线观看| 国产精品视频男人的天堂| 免费看男女www网站入口在线| 欧美xxxx做受欧美| аⅴ资源新版在线天堂| 日韩电影大片中文字幕| 亚洲精品视频网| 在线不卡一区二区| 日韩xxx视频| 日韩欧美aaa| 日韩黄色在线视频| 亚洲综合图片区| 日韩激情小视频| 国产欧美一区视频| 在线不卡av电影| 99视频在线观看一区三区| 国产精品熟女一区二区不卡| 激情综合网天天干| 亚洲va在线va天堂va偷拍| 青青草成人在线观看| 中文字幕乱码人妻综合二区三区 | 久久久久久久久电影| а√天堂资源地址在线下载| 中文字幕日韩av电影| 久久这里精品| 亚洲欧美日韩中文在线| 亚洲欧洲精品视频| 亚洲精品久久久久国产| 亚洲美女福利视频| 精品国产凹凸成av人导航| 精品免费久久久| 日韩一区二区三区三四区视频在线观看| 中文字幕在线观看1| 91久久精品一区二区| 国产亚洲欧美在线精品| 91成人在线免费观看| 亚洲视频 欧美视频| 色婷婷精品久久二区二区蜜臀av| 免费黄色网址在线| 精品久久久久久久久久久| 亚洲精品视频在线观看免费视频| 亚洲6080在线| 日韩一区二区视频在线| 色综合久久88色综合天天免费| 黄色一级片免费在线观看| 欧美视频在线看| 亚洲精品成人在线视频| 在线观看日产精品| 中文字幕乱码视频| 欧美一区二区三区免费观看视频| 国产jzjzjz丝袜老师水多| 日韩一区二区免费视频| 欧美性受xxxx狂喷水| 日韩电影中文 亚洲精品乱码| 欧美在线一卡| 在线播放日韩精品| av网址在线免费观看| 久久久久久久国产精品视频| 欧美一级鲁丝片| 国产精品免费久久久| 麻豆国产精品| 免费一区二区三区| 天天插综合网| 国产二区视频在线| 老**午夜毛片一区二区三区| www.成年人| aaa国产一区| 高清国产在线观看| 亚洲免费观看高清完整版在线观看| 亚欧洲精品在线视频| 一本大道av伊人久久综合| 一级爱爱免费视频| 欧美成人三级在线| 麻豆app在线观看| 久久中文精品视频| 在线观看爽视频| 91精品视频播放| 天堂日韩电影| 香蕉视频免费版| 老司机久久99久久精品播放免费| 网站在线你懂的| 久久人人97超碰com| 黄视频网站免费看| 欧美日韩免费一区| 国产乱码一区二区| 精品在线观看国产| 性欧美ⅴideo另类hd| 国产精品大片wwwwww| 成人香蕉社区| 一区二区三区国产福利| 亚洲一区国产| 国产黄色一区二区三区| 国产色产综合色产在线视频| 久久黄色免费网站| 欧美日韩1区2区| 台湾av在线二三区观看| 欧美日韩第一页| 99精品在免费线偷拍| 鲁片一区二区三区| 一区二区视频欧美| 午夜av中文字幕| 国产精品欧美综合在线| 久久青青草原亚洲av无码麻豆| 日韩欧美色电影| 天堂地址在线www| 国产xxx69麻豆国语对白| jazzjazz国产精品久久| 亚洲免费视频播放| 日本不卡视频在线| 在哪里可以看毛片| 欧美色播在线播放| 黄色av免费观看| 大胆人体色综合| 欧美男男gaygay1069| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 国内成+人亚洲| 红桃视频国产一区| 91香蕉视频免费看| 亚洲另类色综合网站| 亚洲中文字幕在线观看| 国产一区二区美女视频| 国产精品专区免费| 久久一区二区精品| 国产精品久久777777毛茸茸| 国产高潮视频在线观看| 亚洲一区二区成人在线观看| 精品乱子伦一区二区| 欧美大学生性色视频| 午夜日韩影院| 丰满的少妇愉情hd高清果冻传媒 | 无码人妻aⅴ一区二区三区| 午夜久久久久久久久| 亚洲毛片在线播放| 97免费视频在线播放| 国产精品一线| 阿v天堂2017| 久久综合久久99| 中文字幕在线看人| 一区二区三区黄色| 男人天堂久久| 精品91一区二区三区| 国产精品一区二区果冻传媒| 久久久久黄色片| 日韩成人在线播放| 日韩av福利| 亚洲免费久久| 国产一区二区三区综合| 欧美爱爱小视频| 亚洲第一二三四五区| 欧美男男tv网站在线播放| 欧美亚洲另类在线一区二区三区| 日韩激情中文字幕| 欧美日韩午夜视频| 精品剧情在线观看| 亚洲天堂手机| 亚洲a∨一区二区三区| 国产精品综合二区| 日韩xxx高潮hd| 亚洲小视频在线| 欧美一级做一级爱a做片性| 欧美视频在线第一页| 26uuu亚洲综合色| 中文字幕网址在线| 色综合天天狠天天透天天伊人| 欧美三级午夜理伦三级在线观看| 天天操天天爱天天爽| 亚洲男女一区二区三区| 人妻精品一区一区三区蜜桃91| 国产成人精品av| 亚洲综合自拍| 国产乱了高清露脸对白| 91成人免费在线| 日韩av毛片| 日韩欧美电影一区二区| 国产精品一二三在| 欧美一区二区三区不卡视频| 久久亚洲精品视频| 香蕉久久精品日日躁夜夜躁| 亚洲第一天堂久久| 大伊人狠狠躁夜夜躁av一区| 日本网站在线免费观看视频| 国产日韩二区| 久久99精品一区二区三区三区| 日产精品久久久久|