DB,Cache和Redis應用場景分析

2021-07-22 07:56:31 字數 503 閱讀 8852

資料儲存同時用到了db(mysql),cache(memcache),redis。其實最開始架構設計的時候是準備用mongodb的,由於學習成本太高,

最終選擇放棄了,採用了比較保守的方案。這款產品做了將近一年,涵蓋了手機客戶端(ios,android),web(剛上線不久),現在差不多有10多w使用者,光

db的寫操作也到了幾十w每日,前段時間剛剛做了乙個讀寫分離。目前感覺這套系統還比較穩定。下文主要就微博產品的一些資料儲存的應用場景做個簡要介紹。

db圖。由於業務比較複雜,還是有不少地方超過了3個表的聯表查詢。隨著資料量的逐步增加,下一步要考慮分庫分表了。

cache

存。redis

友關係做了乙個redis備份。redis還做了一些臨時儲存的資料,比如今日最熱微博,本週最熱微博id列表。

這三個元件相輔相成。其實db放了一些需要永久儲存,而不經常修改的資料。cache針對單錶和業務層分別做了一些細粗粒度的快取。redis主要放了一些

不太緊要的而又經常改變的資料。

redis的incr和hash應用

if this redis db incr bj car no 1 elseelse 另外,incr對string型別,hash型別,sortedset型別都可以進行操作 blpop相對於lpop有乙個好處,可以對多個佇列進行優先順序操作。blpop會按照key的排列順序依次彈出,返回值為key的l...

Redis 簡介和應用場景

redis全稱remote dictionary server 遠端資料服務 是乙個nosql資料庫,基於記憶體的分布式key value儲存系統。redis的併發數取決於網路頻寬,讀取速度可高達110000次 s,寫速度高達81000次。redis支援的資料型別有9種。binary safe st...

Redis事務應用

對於redis事務的應用其實需要靈活使用。其實在實際中可以通過watch一些標記位來保證多執行緒下快取與資料庫資料庫的一致性。我們的系統是分布式快取與資料庫的結合使用,快取需要跟 資料庫的一致性很重要,下面舉例我們應用中的乙個場景 1 帳號為acc,為每個acc在快取中增加乙個tag標識。2 當執行...