幫助中心 | 我的帳號 | 關於我們

Redis深度歷險(核心原理與應用實踐全彩)

  • 作者:錢文品
  • 出版社:電子工業
  • ISBN:9787121350474
  • 出版日期:2019/01/01
  • 裝幀:平裝
  • 頁數:232
人民幣:RMB 79 元      售價:
放入購物車
加入收藏夾

內容大鋼
    Redis是互聯網技術架構在存儲系統中使用得最為廣泛的中間件,也是中高級後端工程師技術面試中面試官最喜歡問的工程技能之一,特別是那些優秀的互聯網公司,通常要求面試者不僅僅掌握Redis基礎用法,還要理解。Redis內部實現的細節原理。《Redis深度歷險(核心原理與應用實踐全彩)》作者錢文品(老錢)在使用Redis上積累了豐富的實戰經驗,希望幫助更多後端開發者更快、更深入地掌握Redis技能。
    本書分為基礎和應用篇、原理篇、集群篇、拓展篇、源碼篇共5大塊內容。基礎和應用篇講解對讀者來說最有價值的內容,可以直接應用到實際工作中;原理篇、集群篇讓開發者透過簡單的技術表面看到精緻的底層世界;拓展篇幫助讀者拓展技術視野和夯實基礎,便於進階學習;源碼篇讓高階的讀者能夠讀懂源碼,掌握核心技術實力。
    本書適合以下人群閱讀:有Redis基礎,渴望深度掌握Redis技術原理的中高級後端開發者;渴望成功進入大型互聯網企業研發部的中高級後端開發者;需要支撐公司Redis中間件運維工作的初中級運維工程師;對Redis中間件技術好奇的中高級前端技術研究者。

作者介紹
錢文品
    錢文品(老錢)     互聯網分散式高併發技術領域奮戰十年的老兵,目前擔任掌閱服務端技術專家。     熟練使用Java、Python、Golang等多種電腦語言,是開源項目愛好者。     開發過多人在線RPG遊戲,製作過大型網站,寫過消息推送系統和MySQL中間件。     運營公眾號「碼洞」(codehole)。

目錄
第1篇  基礎和應用篇
  1.1  授人以魚不如授人以漁
    1.1.1  由Redis面試想到的
    1.1.2  本書的內容範圍
    1.1.3  Redis可以做什麼
    1.1.4  小結
    1.1.5  擴展閱讀
  1.2  萬丈高樓平地起——Redis基礎數據結構
    1.2.1  Redis的安裝
    1.2.25  種基礎數據結構
    1.2.3  容器型數據結構的通用規則
    1.2.4  過期時間
    1.2.5  思考&作業
  1.3  千帆競發——分散式鎖
    1.3.1  分散式鎖的奧義
    1.3.2  超時問題
    1.3.3  可重入性
    1.3.4  思考&作業
  1.4  緩兵之計——延時隊列
    1.4.1  非同步消息隊列
    1.4.2  隊列空了怎麼辦
    1.4.3  阻塞讀
    1.4.4  空閑連接自動斷開
    1.4.5  鎖衝突處理
    1.4.6  延時隊列的實現
    1.4.7  進一步優化
    1.4.8  思考&作業
  1.5  節衣縮食——點陣圖
    1.5.1  基本用法
    1.5.2  統計和查找
    1.5.3  魔術指令bitfield
    1.5.4  思考&作業
  1.6  四兩撥千斤——HyperLogLog
    1.6.1  使用方法
    1.6.2  pfadd中的pf是什麼意思
    1.6.3  pfmerge適合的場合
    1.6.4  注意事項
    1.6.5  HyperLogLog實現原理
    1.6.6  pf的內存佔用為什麼是12KB
    1.6.7  思考&作業
  1.7  層巒疊嶂——布隆過濾器
    1.7.1  布隆過濾器是什麼
    1.7.2  Redis中的布隆過濾器
    1.7.3  布隆過濾器的基本用法
    1.7.4  注意事項
    1.7.5  布隆過濾器的原理
    1.7.6  空間佔用估計
    1.7.7  實際元素超出時,誤判率會怎樣變化
      1.7.8用不上Redis4.0  怎麼辦
    1.7.9  布隆過濾器的其他應用

  1.8  斷尾求生——簡單限流
    1.8.1  如何使用Redis來實現簡單限流策略
    1.8.2  解決方案
    1.8.3  小結
  1.9  一毛不拔——漏斗限流
    1.9.1  Redis-Cell
    1.9.2  思考&作業
    1.9.3  擴展閱讀:Redis-Cell作者介紹
  1.10  近水樓台——GeoHash
    1.10.1  用資料庫來算附近的人
    1.10.2  GeoHash演算法
    1.10.3  Geo指令的基本用法
    1.10.4  注意事項
  1.11  大海撈針——scan
    1.11.1  scan基本用法
    1.11.2  字典的結構
    1.11.3  scan遍歷順序
    1.11.4  字典擴容
    1.11.5  對比擴容、縮容前後的遍歷順序
    1.11.6  漸進式rehash
    1.11.7  更多的scan指令
    1.11.8  大key掃描
第2篇  原理篇
  2.1  鞭辟入裡——線程IO模型
    2.1.1  非阻塞IO
    2.1.2  事件輪詢(多路復用)
    2.1.3  指令隊列
    2.1.4  響應隊列
    2.1.5  定時任務
    2.1.6  擴展閱讀
  2.2  交頭接耳——通信協議
    2.2.1  RESP
    2.2.2  客戶端→伺服器
    2.2.3  伺服器→客戶端
    2.2.4  小結
    2.2.5  擴展閱讀
  2.3  未雨綢繆——持久化
    2.3.1  快照原理
    2.3.2  fork(多進程)
    2.3.3  AOF原理
    2.3.4  AOF重寫
    2.3.5  fsync
    2.3.6  運維
      2.3.7Redis4.0  混合持久化
    2.3.8  思考&作業
  2.4  雷厲風行——管道
    2.4.1  Redis的消息交互
    2.4.2  管道壓力測試
    2.4.3  深入理解管道本質
    2.4.4  小結

  2.5  同舟共濟——事務
    2.5.1  Redis事務的基本用法
    2.5.2  原子性
    2.5.3  discard(丟棄)
    2.5.4  優化
    2.5.5  watch
    2.5.6  注意事項
    2.5.7  思考&作業
  2.6  小道消息——PubSub
    2.6.1  消息多播
    2.6.2  PubSub
    2.6.3  模式訂閱
    2.6.4  消息結構
    2.6.5  PubSub的缺點
    2.6.6  補充
  2.7  開源節流——小對象壓縮
    2.7.13  2bitVS64bit
    2.7.2  小對象壓縮存儲(ziplist)
    2.7.3  內存回收機制
    2.7.4  內存分配演算法
第3篇  集群篇
  3.1  有備無患——主從同步
    3.1.1  CAP原理
    3.1.2  最終一致
    3.1.3  主從同步與從從同步
    3.1.4  增量同步
    3.1.5  快照同步
    3.1.6  增加從節點
    3.1.7  無盤複製
    3.1.8  wait指令
    3.1.9  小結
  3.2  李代桃僵——Sentinel
    3.2.1  消息丟失
    3.2.2  Sentinel基本用法
    3.2.3  思考&作業
  3.3  分而治之——Codis
    3.3.1  Codis分片原理
    3.3.2  不同的Codis實例之間槽位關係如何同步
    3.3.3  擴容
    3.3.4  自動均衡
    3.3.5  Codis的代價
    3.3.6  Codis的優點
    3.3.7  mget指令的操作過程
    3.3.8  架構變遷
    3.3.9  Codis的尷尬
    3.3.10  Codis的後台管理
    3.3.11  思考&作業
  3.4  眾志成城——Cluster
    3.4.1  槽位定位演算法
    3.4.2  跳轉

    3.4.3  遷移
    3.4.4  容錯
    3.4.5  網路抖動
    3.4.6  可能下線(PFAIL)與確定下線(Fail)
    3.4.7  Cluster基本用法
    3.4.8  槽位遷移感知
    3.4.9  集群變更感知
    3.4.10  思考&作業
第4篇  拓展篇
  4.1  耳聽八方——Stream
    4.1.1  消息ID
    4.1.2  消息內容
    4.1.3  增刪改查
    4.1.4  獨立消費
    4.1.5  創建消費組
    4.1.6  消費
    4.1.7  Stream消息太多怎麼辦
    4.1.8  消息如果忘記ack會怎樣
    4.1.9  PEL如何避免消息丟失
    4.1.10  Stream的高可用
    4.1.11  分區Partition
    4.1.12  小結
  4.2  無所不知——Info指令
    4.2.1  Redis每秒執行多少次指令
    4.2.2  Redis連接了多少客戶端
    4.2.3  Redis內存佔用多大
    4.2.4  複製積壓緩衝區多大
    4.2.5  思考&作業
  4.3  拾遺補漏——再談分散式鎖
    4.3.1  Redlock演算法
    4.3.2  Redlock使用場景
    4.3.3  擴展閱讀:redlock-py的作者
  4.4  朝生暮死——過期策略
    4.4.1  過期的key集合
    4.4.2  定時掃描策略
    4.4.3  從節點的過期策略
  4.5  優勝劣汰——LRU
    4.5.1  LRU演算法
    4.5.2  近似LRU演算法
    4.5.3  思考&作業
  4.6  平波緩進——懶惰刪除
    4.6.1  Redis為什麼使用懶惰刪除
    4.6.2  flush
    4.6.3  非同步隊列
    4.6.4  AOFSync也很慢
    4.6.5  更多非同步刪除點
  4.7  妙手仁心——優雅地使用Jedis
    4.7.1  重試
    4.7.2  思考&作業
  4.8  居安思危——保護Redis

    4.8.1  指令安全
    4.8.2  埠安全
    4.8.3  Lua腳本安全
    4.8.4  SSL代理
    4.8.5  小結
  4.9  隔牆有耳——Redis安全通信
    4.9.1  spiped原理
    4.9.2  spiped使用入門
    4.9.3  思考&作業
第5篇  源碼篇
  5.1  絲分縷析——探索「字元串」內部
    5.1.1  embstrVSraw
    5.1.2  擴容策略
    5.1.3  思考&作業
  5.2  循序漸進——探索「字典」內部
    5.2.1  dict內部結構
    5.2.2  漸進式rehash
    5.2.3  查找過程
    5.2.4  hash函數
    5.2.5  hash攻擊
    5.2.6  擴容條件
    5.2.7  縮容條件
    5.2.8  set的結構
    5.2.9  思考&作業
  5.3  挨肩迭背——探索「壓縮列表」內部
    5.3.1  增加元素
    5.3.2  級聯更新
    5.3.3  intset小整數集合
    5.3.4  思考&作業
  5.4  風馳電掣——探索「快速列表」內部
    5.4.1  每個ziplist存多少元素
    5.4.2  壓縮深度
  5.5  凌波微步——探索「跳躍列表」內部
    5.5.1  基本結構
    5.5.2  查找過程
    5.5.3  隨機層數
    5.5.4  插入過程
    5.5.5  刪除過程
    5.5.6  更新過程
    5.5.7  如果score值都一樣呢
    5.5.8  元素排名是怎麼算出來的
    5.5.9  思考&作業
    5.5.10  題外話
  5.6  破舊立新——探索「緊湊列表」內部
    5.6.1  級聯更新
    5.6.2  取代ziplist尚需時日
    5.6.3  思考&作業
  5.7  金枝玉葉——探索「基數樹」內部
    5.7.1  應用
    5.7.2  結構

    5.7.3  思考&作業
  5.8  精益求精——LFUVSLRU
    5.8.1  Redis對象的熱度
    5.8.2  LRU模式
    5.8.3  LFU模式
    5.8.4  為什麼Redis要緩存系統時間戳
    5.8.5  Redis為什麼在獲取lruclock時使用原子操作
    5.8.6  如何打開LFU模式
    5.8.7  思考&作業
  5.9  如履薄冰——懶惰刪除的巨大犧牲
    5.9.1  懶惰刪除的最初實現不是非同步線程
    5.9.2  非同步線程方案其實也相當複雜
    5.9.3  非同步刪除的實現
    5.9.4  隊列安全
    5.9.5  思考&作業
  5.10  跋山涉水——深入字典遍歷
    5.10.1  一邊遍歷一邊修改
    5.10.2  重複遍歷的難題
    5.10.3  迭代器的結構
    5.10.4  迭代過程
    5.10.5  迭代器的選擇
    5.10.6  思考&作業

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032