原创 redis高級之持久化(四)---rdb與aof區別

上兩篇文章我們詳細介紹了rdb和aof,兩種持久化方式我們在實際應用中該如何選擇呢?他們各有什麼優缺點,如下 rdb與aof的選擇之感 對數據非常敏感,建議使用默認的aof持久化方案 aof持久化策略使用everysecond,每秒種f

原创 redis高級之持久化(二)---RDB方式

RDB啓動方式 誰,什麼時間,幹什麼事情 命令執行 誰:redis操作者(用戶) 什麼時間:即時(隨時進行) 幹什麼事情:保存數據 RDB啓動方式---save指令 命令 save 作用:手動執行一次保存操作 RDB啓動方式---sav

原创 redis高級之持久化(三)---AOF方式

Rdb存儲的弊端 存儲數據量較大,效率較低(基於快照思想,每次讀寫都是全部數據,當數據量巨大,效率非常低) 大數據量下的IO性能較低 基於fork創建子進程,內存產生額外消耗 宕機帶來的數據丟失風險 解決思路 不寫全數據,僅記錄部分數據

原创 redis高級之持久化(一)---持久化簡介

我們將從以下幾個方面對redis持久化進行介紹,本篇介紹持久化的簡介,先對持久化有一個感性的認識,然後介紹兩種持久化方案,再分析一下這兩種持久化有什麼區別,最後介紹一下持久化的應用場景。 持久化簡介 RDB AOF RDB和AOF區別 持

原创 圖解mysql索引---歷史最詳細、最清楚的講解

我們先來列一個提綱,從以下幾個方面介紹mysql索引 1、索引的本質 2、索引結構及其詳細解讀(二叉樹、紅黑樹、HASH、B-Tree、B+Tree) 3、非聚集索引(MyISAM)、聚集索引(InnoDB) 4、常見問題 一、索引的本質

原创 redis使用場景之sorted_set(二)---排行榜(計數器組合排序功能對應的排名)

業務場景 票選廣東十大傑出青年,各類綜藝選秀海選投票 各類諮詢網站top10(電影、歌曲、文檔、電商、遊戲等) 聊天室活躍度統計 遊戲好友親密度 業務分析 爲所有參與排名的資源建立排序依據   解決方案 獲取數據對應的索引(排名) z

原创 redis高級之鎖---普通鎖、分佈式鎖、分佈式鎖改良

基於特定條件的事務執行---鎖 業務場景 天貓雙11熱賣過程中,對已經售罄的貨物追加補貨,4個業務員都有權限進行補貨,補貨的操作可能是一系列的操作,牽扯到多個連續操作,如何保障不會重複操作? 業務分析 多個客戶端有可能同時操作同一組數據,

原创 redis高級之事務

事務簡介 超市的收銀員在盤賬,一天下來收了一些零錢,然後一個一個數,在數的過程中來了一個兒童,這個兒童唱了一首歌:門前大橋下游過一羣鴨,快來快來數一數二十六七八。然後這個收銀員一臉難色地把數好的錢又放了回去。這裏收銀員在做連續的動作(數錢

原创 redis高級之常見問題解決方案---緩存預熱、緩存雪崩、緩存擊穿、緩存穿透

緩存預熱 問題排查 請求數據較高 主從之間數據吞吐量較大,數據同步操作頻度較高 解決方案 前置準備工作 日常例行統計數據訪問記錄,統計訪問頻度較高的熱點數據 利用LRU數據刪除策略,構建數據留存隊列 例如:storm與kafka配合 準備

原创 redis高級之集羣---集羣

今天我們正式講解集羣相關的一些知識,我們從以下三個方面進行講解 集羣簡介 Redis集羣結構設計 Cluster集羣結構搭建 現狀問題 業務發展過程中遇到的峯值瓶頸 Redis提供的服務OPS可以達到10萬/秒,當前業務OPS

原创 redis高級之集羣---主從複製(三)---心跳機制

心跳機制 進入命令傳播階段後,master與slave間需要進行信息交換,使用心跳機制進行維護,實現雙方連接保持在線 master心跳 指令:PNG 週期:由repl-ping-slave-period決定,默認10秒 作用:判斷sla

原创 redis高級之集羣---哨兵模式

接下來我們就介紹一下哨兵模式,我們會從以下幾個方面進行介紹: 哨兵簡介 啓用哨兵模式 哨兵工作原理 假如master主機“宕機”了,我們要做的就是把宕機的master幹掉,然後從剩餘的slave中選出一個master          

原创 redis使用場景之Bitmaps---應用於信息統計狀態

今天我們來學習一下bitmaps,bitmaps這個“數據結構”可以實現對位的操作。bitmaps本身不是一種數據結構,實際上就是字符串,但是它可以對字符串的位進行操作。 Bitmaps類型的基礎操作 獲取指定key對應偏移量上的bit值

原创 redis高級之集羣---主從複製(二)---工作流程及名詞解釋

今天我們就詳細講解一下主從複製的工作流程 主從複製工作流程 主從複製過程大體可以分爲3個階段 建立連接階段(即準備階段) 數據同步階段 命令傳播階段 連接圖及過程如下圖,是slave主動連接master。大部分時間是slave給maste

原创 redis高級之集羣---主從複製(四)---主從複製常見問題

頻繁的全量複製(1) 伴隨着系統的運行,master的數據量會越來越大,一旦master重啓,runid將發生變化,會導致全部slave的全量複製操作 內部優化調整方案: master內部創建master_replid變量,使用runid