面試 資料庫 中介軟體

2021-10-06 11:45:32 字數 2562 閱讀 8597

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....