基于Docker的Redis入門與實戰(zhàn)
定 價:79 元
本書圍繞高并發(fā)大數(shù)據(jù)的項目需求,全面講述分布式緩存組件Redis的基本語法、核心技術(shù)和實戰(zhàn)技能。本書分為13章,第1~7章主要介紹Redis入門知識、Redis基本數(shù)據(jù)類型、Redis常用命令、Redis服務(wù)器和客戶端實踐技巧、Redis數(shù)據(jù)庫操作技巧、Redis AOF和RDB持久化操作技巧、Redis集群的搭建方式,第8~11章主要介紹Redis同MySQL和MyCAT集群的整合技巧、Redis同lua的整合技巧等,第12、13章主要介紹Redis、Spring Boot和Spring Cloud如何構(gòu)建微服務(wù)應(yīng)用。
高并發(fā)大數(shù)據(jù)已經(jīng)成為當(dāng)前軟件項目的普遍需求,而Redis組件在該類項目中扮演了越來越重要的角色,對這一點廣大程序員應(yīng)當(dāng)深有體會:哪怕是軟件專業(yè)的畢業(yè)生,在面試時多少也會被問及這方面的問題。掌握Redis及其在項目中的使用成為Java程序員的重要技能。 在學(xué)習(xí)Redis時,讀者首先會遇到搭建環(huán)境的問題。項目里Redis以及Redis集群一般是部署在Linux系統(tǒng)上的,和Redis整合的其他數(shù)據(jù)庫組件(比如MySQL集群和MyCAT分庫分表組件)一般也是安裝部署在Linux系統(tǒng)上,但是讀者學(xué)習(xí)所用的計算機大多是Windows系統(tǒng)。對此,本書首先在Windows系統(tǒng)上安裝Docker,模擬Linux環(huán)境,并在Docker容器里搭建Redis等組件的開發(fā)運行環(huán)境,讓讀者邊敲代碼邊學(xué)習(xí),以便真正學(xué)會Redis及開發(fā)技能。 在解決環(huán)境問題后,就會面臨學(xué)什么的問題。對此,本書針對大多數(shù)項目對Redis的普遍需求,首先通過案例介紹Redis數(shù)據(jù)結(jié)構(gòu)和Redis常用命令等基本技能,隨后圍繞高并發(fā)大數(shù)據(jù)的需求講述基于Redis集群 MySQL集群 MyCAT分庫分表組件的數(shù)據(jù)庫層面應(yīng)對高并發(fā)請求的解決方案。 雖然說這些技術(shù)點看上去很高深,而且讀者有可能是次接觸,但是在本書里會給出搭建環(huán)境和運行代碼的詳細(xì)步驟,范例通俗易懂,所以讀者不必?fù)?dān)心。 在實際項目里,Redis等數(shù)據(jù)庫組件一般是同Spring Boot微服務(wù)組件整合使用的,所以本書以秒殺等案例詳細(xì)給出Redis同Spring Boot以及Eureka、Ribbon等Spring Cloud全家桶組件整合的相關(guān)技巧。這樣大家在看完本書以后不僅能掌握Redis本身的相關(guān)技能,還能站在微服務(wù)架構(gòu)的高度上掌握在Spring微服務(wù)系統(tǒng)里整合使用Redis的技能。 本書涉及的源代碼和視頻教學(xué)文件可以從華章網(wǎng)站(www.hzbook.com)下載(搜索到本書以后單擊資料下載按鈕,即可在本書頁面上的擴展資源模塊找到配套資源下載鏈接)。若下載有問題,請發(fā)送電子郵件到booksaga@126.com,郵件主題為基于Docker的Redis入門與實戰(zhàn)。 本書在編寫過程中得到了夏非彼和王金柱兩位老師的大力支持,在此表示感謝。 雖然編者在寫這本書的時候處處留意,字字斟酌,但是限于水平,疏漏之處在所難免,懇請相關(guān)技術(shù)專家和讀者不吝指正。 編 者 2021年6月
前言第1章 構(gòu)建Redis開發(fā)環(huán)境 11.1 Redis概述 11.1.1 對比傳統(tǒng)數(shù)據(jù)庫與NoSQL數(shù)據(jù)庫 11.1.2 Redis的特點 21.1.3 Redis更適合以分布式集群的方式提供服務(wù) 21.2 了解必要的Docker技能 31.2.1 Docker容器、鏡像和倉庫 31.2.2 在Windows上安裝Docker 31.2.3 Docker鏡像相關(guān)的命令 41.2.4 Docker容器相關(guān)的命令 41.3 安裝和配置基于Docker的Redis環(huán)境 51.3.1 用docker pull下載Redis鏡像 51.3.2 用docker run啟動Redis容器 51.3.3 用docker logs觀察Redis啟動效果 61.3.4 通過docker exec進入Redis容器 61.3.5 停止、重啟和刪除Redis容器 71.3.6 查看Redis的版本 81.3.7 Redis服務(wù)器和客戶端 81.3.8 總結(jié)容器和Redis的相關(guān)命令 91.4 本章小結(jié) 10第2章 實踐Redis的基本數(shù)據(jù)類型 112.1 Redis緩存初體驗 112.1.1 用redis-cli啟動客戶端并緩存數(shù)據(jù) 112.1.2 設(shè)置數(shù)據(jù)的生存時間 122.2 針對字符串的命令 132.2.1 讀寫字符串的set和get命令 132.2.2 設(shè)置和獲取多個字符串的命令 142.2.3 對值進行增量和減量操作 152.2.4 通過getset命令設(shè)置新值 162.2.5 針對字符串的其他操作 172.3 針對哈希類型變量的命令 172.3.1 設(shè)置并獲取哈希值 182.3.2 hsetnx命令 192.3.3 針對key的相關(guān)操作 192.3.4 用hexists命令判斷值是否存在 202.3.5 對哈希類型數(shù)據(jù)的刪除操作 212.4 針對列表類型變量的命令 212.4.1 讀寫列表的命令 212.4.2 lpushx和rpushx命令 232.4.3 用list模擬堆棧和隊列 242.4.4 用lrange命令獲取指定區(qū)間內(nèi)的數(shù)據(jù) 252.4.5 用lset命令修改列表數(shù)據(jù) 262.4.6 刪除列表數(shù)據(jù)的命令 262.5 針對集合的命令 282.5.1 讀寫集合的命令 282.5.2 列表和集合類數(shù)據(jù)的使用場景 292.5.3 用sismember命令判斷元素是否存在 292.5.4 獲取集合的交集、并集和差集 292.5.5 用srem命令刪除集合數(shù)據(jù) 302.6 針對有序集合的命令 312.6.1 讀寫有序集合的命令 312.6.2 通過zincrby命令修改元素的分值 332.6.3 用zscore命令獲取指定元素的分?jǐn)?shù) 332.6.4 查看有序集合里的元素排名 342.6.5 刪除有序集合里的值 352.7 本章小結(jié) 36第3章 實踐Redis的常用命令 373.1 鍵操作命令 373.1.1 用exists命令判斷鍵是否存在 373.1.2 用keys命令查找鍵 383.1.3 用scan命令查找鍵 383.1.4 重命名鍵 393.1.5 用del命令刪除鍵 403.1.6 關(guān)于鍵生存時間的命令 413.2 HyperLogLog相關(guān)命令 423.2.1 用pfadd添加鍵值對 423.2.2 用pfcount統(tǒng)計基數(shù)值 433.2.3 用pfmerge進行合并操作 433.2.4 統(tǒng)計網(wǎng)站訪問總?cè)藬?shù) 443.3 lua腳本相關(guān)命令 443.3.1 把lua腳本裝載到緩存里 453.3.2 通過evalsha命令執(zhí)行緩存中的腳本 453.3.3 清空緩存中l(wèi)ua腳本的命令 453.3.4 用eval命令執(zhí)行l(wèi)ua腳本 463.4 排序相關(guān)命令 463.4.1 用sort命令進行排序 463.4.2 用by參數(shù)指定排序模式 483.4.3 用limit參數(shù)返回部分排序結(jié)果 483.4.4 sort命令里get參數(shù)的用法 493.4.5 通過store參數(shù)提升性能 503.5 本章小結(jié) 51第4章 實踐Redis服務(wù)器和客戶端的操作 524.1 Redis服務(wù)器管理客戶端的命令 524.1.1 獲取和設(shè)置客戶端的名字 524.1.2 通過client list命令查看客戶端的信息 534.1.3 通過client pause命令暫停客戶端的命令 534.1.4 通過client kill命令中斷客戶端連接 544.1.5 通過shutdown命令關(guān)閉服務(wù)器和客戶端 544.2 查看Redis服務(wù)器的詳細(xì)信息 554.2.1 通過info命令查看服務(wù)器信息 554.2.2 查看客戶端連接狀況 564.2.3 觀察連接數(shù) 564.2.4 查看每秒執(zhí)行多少條指令 564.2.5 觀察內(nèi)存用量 57