回覆列表
-
1 # 晚安
-
2 # 蓮花童子哪吒
Redis作為高效能的非關係資料庫,在目前主流的網站都是非常廣泛的應用。讀寫效率可達8-10w/s。一般作為快取資料庫,都是載入網站的一些熱點性質額資料,而不是把快取當做資料庫來使用。
只有找到的是網站中的熱點資料,才能夠把Redis的效能發揮到極致,一般查詢快取的熱點的key,常用的方式分為客戶端的和我們服務的兩大類。
客戶端1、客戶端其實是距離key”最近”的地方,因為操作的Redis的命令就是客戶端發出的。例如客戶端設傳送操作key命令的時候,把呼叫的key和呼叫的次數記錄到日誌裡面進行統計,然後再服務端進行日誌分析的統計,得到熱點的key值,這樣就在Redis快取key的時候就可用統計出來的熱點資料來操作。
2、憑藉經驗,進行預估,每一個網站在開始執行的時候都會存在熱點場景,或者說訪問的頻率在非常高場景下,比如說像微博的熱搜榜、商城裡面活動促銷商品,那這些就是我們可以提前將Key作為熱點Key進行儲存
3、採用抓包工具進行評估:Redis使用TCP協議與客戶端進行通訊,存在網路上面的通訊,這時候就可以基於抓包工具去分析網路所攜帶的key的資料,然後做好訪問key頻率統計。通訊協議採用的是RESP。
例如:tcpdump、Wireshark等工具
注:RESP(REdis Serialization Protocol, redis序列化協議)協議與Redis伺服器互動。RESP是序列化資料之後,在建立在TCP通道上進行傳輸服務端1、使用monitor命令統計熱點key可以記錄redis的所有操作命令,記錄並分析monitor日誌得到key的訪問頻率。(monitor可能會造成效能問題,所以要選擇好時機)
2、採用第三方開源專案,如facebook開源專案redis-faina,獲取最近操作命令的熱點key、熱點命令、耗時分佈等資料。為了減少網路開銷以及加快輸出緩衝區的消費速度,monitor要儘可能在本機執行。
redis的值有5種類型,不同的型別有不同的命令來獲取:
字元直接 get key
佇列 左端彈出一個元素 LPOP key
雜湊 HGET key field
集合 SMEMBERS key 返回集合中的所有元素
有序集合ZRANGE key start stop
更詳細的命令可以檢視redis常用命令。