lru是redis唯一支援的**演算法
no-eviction:不刪除策略
# 對於所有的key
allkeys-lru:刪除最近訪問頻率低的key
allkeys-random:隨機刪除一部分key
# 對於設定expire
volatile-lru:刪除最近訪問頻率低的key
volatile-random:隨機刪除一部分key
volatile-ttl:優先刪除剩餘時間(time to live,ttl) 短的key
# 清理策略
無外乎就是 清理非熱點資料 訪問頻率 最近訪問時間 剩餘的有效期時間
# 快取穿透
由於快取不命中,每次都要查詢持久層。從而失去快取的意義
解決方法:
0、可以校驗key的格式,不滿足,直接返回錯誤資訊
1、快取層快取空值
–儲存層更新**了,快取層還是空值。(優化:後台設定時主動刪除空值,並快取把值進去)
2、將資料庫中所有的查詢條件,放到布隆過濾器中。當乙個查詢請求來臨的時候,先經過布隆過濾器進行檢查,如果請求存在這個條件中,那麼繼續執行,如果不在,直接丟棄
# 快取雪崩
1.在快取失效後,通過加鎖或者佇列來控制讀資料庫寫快取的執行緒數量。比如對某個key只允許乙個執行緒查詢資料和寫快取,其他執行緒等待
2.可以通過快取reload機制,預先去更新快取,再即將發生大併發訪問前手動觸發載入快取
3.不同的key,設定不同的過期時間,讓快取失效的時間點盡量均勻
4.做二級快取,或者雙快取策略。a1為原始快取,a2為拷貝快取,a1失效時,可以訪問a2,a1快取失效時間設定為短期,a2設定為長期
# 熱點key(訪問熱點key的頻率很高)
沒有從快取中獲取到,就從資料庫裡面獲取,然後再存入到記憶體中
# mysql的索引儲存的是什麼?
關聯主鍵,innodb聚簇索引,索引時關聯到主鍵,也就關聯到資料
# 為什麼用主鍵查詢比索引查詢快
所以用主鍵查詢 效率要快於索引,少了一道流程。innodb不手動設定主鍵的話,預設也會內部建立主鍵的,就是因為這層關係
# mysql查詢複雜度,和插入資料的複雜度
logn
# 聚簇索引和非聚簇索引
聚簇索引:將資料儲存和索引放到了一塊,找到索引也就找到了資料;
非聚簇索引:將資料儲存與索引分開結構,索引結構的葉子節點指向了資料的對應行
1、選取最適用的字段屬性
2、使用連線(join)來代替子查詢(sub-queries)
3、事務
4、使用索引
5、優化sql語句
tidb server (接收sql,並且處理sql)(集群,3個tidb serve)
pd server(管理,集群,3個pd server)
tikv server(儲存資料,集群,3個tikv server)
# 水平擴充套件
無限水平擴充套件是 tidb 的一大特點,這裡說的水平擴充套件包括兩方面:計算能力(tidb server)和儲存能力(tikv server);
# 高可用
高可用是 tidb 的另一大特點,tidb/tikv/pd 這三個元件都能容忍部分例項失效,不影響整個集群的可用性
# amqp協議
高階訊息佇列協議
發布訂閱模式
通過交換機與佇列繫結的key,發布到佇列裡
交換機常用的有三種:
direct,點對點,需要全部匹配到key了,才把訊息發到該佇列裡
fanout,發布的訊息,繫結的佇列都收到訊息
topic,匹配,發布的訊息,與該key匹配上的佇列收到訊息,'#'代替乙個單詞或多個詞,* 代表乙個詞
解決訊息丟失
# ack(訊息確認)
# 持久化
# 傳送訊息前,將訊息持久化到資料庫,並記錄訊息狀態(可靠訊息服務)
# 生產者確認(publisher confirm)
# 解決訊息丟失問題
訊息確認機制
通過訊息確認機制(ack)來實現,當消費者獲取訊息後,會想mq傳送回執ack,告知訊息以及被接收了,可以從佇列裡刪除了
協調中心,排程中心
生產消費模式,訂閱乙個topic,發布的訊息到該topic,訂閱該topic的就收到了該訊息
高吞吐,kafka集群
儲存資料用的,儲存的資料型別為json
put /index/type/1 儲存資料,可以寫json的格式去查詢
get /index/type/1 獲取資料
delete /index/type/1 刪除資料
head /index/type/1 判斷資料是否存在,返回狀態碼,200或404
# 分詞
非同步和定時框架 mysql proxy資料庫中介軟體架構
一 mysql proxy簡介 mysql proxy是mysql官方提供的mysql中介軟體服務,上游可接入若干個mysql client,後端可連線若干個mysql server。它使用mysql協議,任何使用mysql client的上游無需修改任何 即可遷移至mysql proxy上。mys...
mysql proxy資料庫中介軟體架構
一 mysql proxy簡介 mysql proxy是mysql官方提供的mysql中介軟體服務,上游可接入若干個mysql client,後端可連線若干個mysql server。它使用mysql協議,任何使用mysql client的上游無需修改任何 即可遷移至mysql proxy上。mys...
MyCat 資料庫集群中介軟體
中文網 權威指南 document mycat definitive guide.pdf 主要功能 分庫分表 橫切,縱切 主從複製讀寫分離,弱xa事務,資料庫集群監控 1 安裝配置 在win環境下測試,在 mycat conf下存放著配置檔案,雙擊 mycat bin startup nowrap....