|
-- 會員 / 註冊 --
|
|
|
|
虛擬化高性能NoSQL存儲案例精粹 Redis+Docker ( 簡體 字) |
作者:高洪巖 | 類別:1. -> 資料庫 -> NoSQL 2. -> 資料庫 -> Redis 3. -> 作業系統 -> Docker |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 54003 詢問書籍請說出此書號!【缺書】 NT售價: 840 元 |
出版日:2/1/2021 |
頁數:659 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787115554482 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:《虛擬化高性能NoSQL存儲案例精粹——Redis+Docker》主要介紹虛擬化平臺Docker結合NoSQL、Redis開發的相關知識點。本書使用大量篇幅著重介紹Redis中的五大數據類型的使用方法,包括String、Hash、List、Set和Sorted Set,還介紹了使用Redis實現高可用的哨兵、復制、集群、高性能數據導入的流水線,以及保障數據操作原子性的事務。另外,本書對Redis中的數據持久化方案AOF和RDB也進行了詳細介紹,并對HyperLogLog、GEO和Pub/Sub的相關知識進行了總結,結合實戰經驗豐富了與內存淘汰策略相關的內容。虛擬化技術使用Docker實現,包括Docker環境的搭建、常見命令的使用、對鏡像和容器的操作,以及常見技術的容器的創建。 《虛擬化高性能NoSQL存儲案例精粹——Redis+Docker》適合所有使用Redis進行編程的開發人員、服務器和數據存儲系統開發人員、分布式系統架構師等互聯網技術程序員閱讀。 |
目錄:第 1章 搭建Redis開發環境 1 1.1 什么是NoSQL 1 1.2 為什么使用NoSQL 1 1.3 NoSQL的優勢 2 1.4 NoSQL的劣勢 2 1.5 Redis介紹及使用場景 3 1.6 Redis沒有Windows版本 4 1.7 搭建Linux環境 4 1.7.1 下載并安裝VirtualBox 4 1.7.2 安裝Ubuntu 5 1.7.3 重置root密碼 8 1.7.4 配置阿里云下載源 8 1.7.5 安裝Vim文本編輯器 9 1.7.6 設置雙向復制粘貼和安裝增強功能 10 1.7.7 安裝ifconfig命令 13 1.8 搭建Redis環境 13 1.8.1 下載Redis 13 1.8.2 在Ubuntu中搭建Redis環境 13 1.8.3 在CentOS中搭建Redis環境 17 1.9 啟動Redis服務 19 1.9.1 redis-server 19 1.9.2 redis-server redis.conf 20 1.9.3 redis-server & 20 1.10 停止服務 20 1.11 測試Redis服務性能 21 1.12 更改Redis服務端口號 22 1.12.1 在命令行中指定 22 1.12.2 在redis.conf配置文件中指定 22 1.13 對Redis設置密碼 23 1.14 連接遠程Redis服務器 24 1.15 使用set和get命令存取值與中文的處理 24 1.16 設置key名稱的建議 25 1.17 使用Redis Desktop Manager圖形界面工具管理Redis 26 1.18 在Java中操作Redis 27 1.19 使用--bigkeys參數找到大key 28 1.20 在redis.conf配置文件中使用include導入其他配置文件 29 第 2章 Connection類型命令 30 2.1 auth命令 30 2.1.1 測試案例 30 2.1.2 程序演示 32 2.2 echo命令 32 2.2.1 測試案例 32 2.2.2 程序演示 33 2.3 ping命令 33 2.3.1 測試案例 34 2.3.2 程序演示 34 2.4 quit命令 35 2.4.1 測試案例 35 2.4.2 程序演示 35 2.5 select命令 36 2.5.1 測試案例 37 2.5.2 程序演示 37 2.6 swapdb命令 38 2.6.1 測試案例 38 2.6.2 程序演示 38 2.7 驗證Pool類中的連接屬于長連接 39 2.8 增加Redis最大連接數 40 第3章 String類型命令 42 3.1 append命令 42 3.1.1 測試案例 42 3.1.2 程序演示 43 3.2 incr命令 43 3.2.1 測試案例 43 3.2.2 程序演示 44 3.3 incrby命令 44 3.3.1 測試案例 45 3.3.2 程序演示 45 3.4 incrbyfloat命令 45 3.4.1 測試案例 46 3.4.2 程序演示 47 3.5 decr命令 48 3.5.1 測試案例 48 3.5.2 程序演示 48 3.6 decrby命令 49 3.6.1 測試案例 49 3.6.2 程序演示 49 3.7 set和get命令 50 3.7.1 不存在key和存在key發生值覆蓋的情況 51 3.7.2 使用ex實現指定時間(秒)后執行命令 51 3.7.3 使用px實現指定時間(毫秒)后執行命令 52 3.7.4 使用nx當key不存在時才賦值 53 3.7.5 使用xx當key存在時才賦值 54 3.7.6 set命令具有刪除TTL的效果 55 3.8 strlen命令 56 3.8.1 測試案例 57 3.8.2 程序演示 57 3.9 setrange命令 57 3.9.1 測試案例 58 3.9.2 程序演示 59 3.10 getrange命令 59 3.10.1 測試案例 60 3.10.2 程序演示 60 3.11 setbit和getbit命令 60 3.11.1 測試案例 61 3.11.2 程序演示 62 3.12 bitcount命令 63 3.12.1 測試案例 63 3.12.2 程序演示 64 3.13 bitop命令 64 3.13.1 and操作 65 3.13.2 or操作 66 3.13.3 xor操作 68 3.13.4 not操作 69 3.14 getset命令 70 3.14.1 測試案例 70 3.14.2 程序演示 70 3.15 msetnx命令 71 3.15.1 測試案例 71 3.15.2 程序演示 72 3.16 mset命令 73 3.16.1 測試案例 73 3.16.2 程序演示 74 3.17 mget命令 74 3.17.1 測試案例 75 3.17.2 程序演示 75 3.18 bitfield命令 76 3.18.1 set、get、incrby子命令的測試 76 3.18.2 使用#方便處理“組數據” 78 3.18.3 overflow子命令的測試 80 3.19 bitpos命令 88 3.19.1 測試案例 89 3.19.2 程序演示 89 3.20 “秒殺”核心算法實現 90 3.21 使用Redisson框架實現分布式鎖 92 3.22 處理慢查詢 93 3.22.1 測試案例 93 3.22.2 程序演示 95 第4章 Hash類型命令 97 4.1 hset和hget命令 97 4.1.1 測試案例 97 4.1.2 程序演示 98 4.2 hmset和hmget命令 99 4.2.1 測試案例 99 4.2.2 程序演示 100 4.3 hlen命令 101 4.3.1 測試案例 101 4.3.2 程序演示 101 4.4 hdel命令 102 4.4.1 測試案例 102 4.4.2 程序演示 103 4.5 hexists命令 104 4.5.1 測試案例 104 4.5.2 程序演示 104 4.6 hincrby和hincrbyfloat命令 105 4.6.1 測試案例 105 4.6.2 程序演示 105 4.7 hgetall命令 106 4.7.1 測試案例 106 4.7.2 程序演示 107 4.8 hkeys和hvals命令 107 4.8.1 測試案例 108 4.8.2 程序演示 108 4.9 hsetnx命令 109 4.9.1 測試案例 110 4.9.2 程序演示 110 4.10 hstrlen命令 110 4.10.1 測試案例 111 4.10.2 程序演示 111 4.11 hscan命令 111 4.11.1 測試案例 112 4.11.2 程序演示 113 4.12 使用sort命令對散列進行排序 114 4.12.1 測試案例 114 4.12.2 程序演示 115 第5章 List類型命令 118 5.1 rpush、llen和lrange命令 118 5.1.1 測試案例 119 5.1.2 程序演示 119 5.2 rpushx命令 120 5.2.1 測試案例 120 5.2.2 程序演示 121 5.3 lpush命令 122 5.3.1 測試案例 122 5.3.2 程序演示 122 5.4 lpushx命令 123 5.4.1 測試案例 123 5.4.2 程序演示 124 5.5 rpop命令 125 5.5.1 測試案例 125 5.5.2 程序演示 125 5.6 lpop命令 126 5.6.1 測試案例 126 5.6.2 程序演示 127 5.7 rpoplpush命令 127 5.7.1 測試案例 128 5.7.2 程序演示 128 5.8 lrem命令 130 5.8.1 測試案例 130 5.8.2 程序演示 131 5.9 lset命令 133 5.9.1 測試案例 133 5.9.2 程序演示 133 5.10 ltrim命令 134 5.10.1 測試案例 134 5.10.2 程序演示 134 5.11 linsert命令 135 5.11.1 測試案例 135 5.11.2 程序演示 136 5.12 lindex命令 137 5.12.1 測試案例 137 5.12.2 程序演示 137 5.13 blpop命令 138 5.13.1 監測一個key 138 5.13.2 監測多個key 140 5.13.3 測試阻塞時間 142 5.13.4 先來先得 142 5.14 brpop命令 145 5.15 brpoplpush命令 145 5.15.1 源列表包括元素時的運行效果 145 5.15.2 呈阻塞的效果 147 5.16 使用sort命令對列表進行排序 149 5.16.1 按數字大小進行正/倒排序 149 5.16.2 按ASCII值進行正/倒排序 151 5.16.3 實現分頁 153 5.16.4 通過外部key對應value的大小關系排序 154 5.16.5 通過外部key排序列表并顯示value 156 5.16.6 將排序結果存儲到其他的key 160 5.16.7 跳過排序 162 5.17 List類型命令的常見使用模式 165 第6章 Set類型命令 166 6.1 sadd、smembers和scard命令 166 6.1.1 測試案例 166 6.1.2 程序演示 167 6.2 sdiff和sdiffstore命令 168 6.2.1 測試案例 168 6.2.2 程序演示 169 6.3 sinter和sinterstore命令 170 6.3.1 測試案例 170 6.3.2 程序演示 171 6.4 sismember命令 172 6.4.1 測試案例 172 6.4.2 程序演示 172 6.5 smove命令 173 6.5.1 測試案例 173 6.5.2 程序演示 174 6.6 srandmember命令 175 6.6.1 測試案例 175 6.6.2 程序演示 176 6.7 spop命令 178 6.7.1 測試案例 178 6.7.2 程序演示 179 6.8 srem命令 181 6.8.1 測試案例 181 6.8.2 程序演示 181 6.9 sunion和sunionstore命令 182 6.9.1 測試案例 182 6.9.2 程序演示 183 6.10 sscan命令 184 6.10.1 測試案例 184 6.10.2 程序演示 185 第7章 Sorted Set類型命令 189 7.1 zadd、zrange和zrevrange命令 189 7.1.1 添加元素并返回指定索引范圍的元素 190 7.1.2 更新score導致重排序并返回新添加元素的個數 192 7.1.3 使用ch參數 193 7.1.4 一起返回元素和score 196 7.1.5 score可以是雙精度浮點數 198 7.1.6 使用XX參數 199 7.1.7 使用NX參數 201 7.1.8 使用incr參數 203 7.1.9 測試字典排序 203 7.1.10 倒序顯示 204 7.2 zcard命令 206 7.2.1 測試案例 206 7.2.2 程序演示 206 7.3 zcount命令 207 7.3.1 測試案例 207 7.3.2 程序演示 208 7.4 zincrby命令 209 7.4.1 測試案例 209 7.4.2 程序演示 209 7.5 zunionstore命令 210 7.5.1 測試合并的效果 211 7.5.2 參數weights的使用 212 7.5.3 參數aggregate的使用 214 7.6 zinterstore命令 217 7.6.1 測試交集的效果 217 7.6.2 參數weights的使用 219 7.6.3 參數aggregate的使用 221 7.7 zrangebylex、zrevrangebylex和zremrangebylex命令 223 7.7.1 測試“ ”和“+”參數 225 7.7.2 測試以“[”開始的參數1 227 7.7.3 測試以“[”開始的參數2 229 7.7.4 測試以“[”開始的參數3 230 7.7.5 測試limit分頁 231 7.7.6 測試以“(”開始的參數1 233 7.7.7 測試以“(”開始的參數2 235 7.7.8 使用zrevrangebylex命令實現倒序查詢 236 7.7.9 使用zremrangebylex命令刪除元素 238 7.8 zlexcount命令 239 7.8.1 測試案例 239 7.8.2 程序演示 239 7.9 zrangebyscore、zrevrangebyscore和zremrangebyscore命令 241 7.9.1 測試案例 241 7.9.2 程序演示 242 7.10 zpopmax和zpopmin命令 245 7.10.1 測試案例 246 7.10.2 程序演示 247 7.11 bzpopmax和bzpopmin命令 249 7.12 zrank、zrevrank和zremrangebyrank命令 249 7.12.1 測試案例 249 7.12.2 程序演示 250 7.13 zrem命令 252 7.13.1 測試案例 252 7.13.2 程序演示 252 7.14 zscore命令 253 7.14.1 測試案例 253 7.14.2 程序演示 253 7.15 zscan命令 254 7.15.1 測試案例 254 7.15.2 程序演示 255 7.16 sort命令 256 7.16.1 測試案例 256 7.16.2 程序演示 257 第8章 Key類型命令 259 8.1 del和exists命令 259 8.1.1 測試案例 259 8.1.2 程序演示 260 8.2 unlink命令 261 8.2.1 測試案例 261 8.2.2 程序演示 262 8.3 rename命令 263 8.3.1 測試案例 263 8.3.2 程序演示 264 8.4 renamenx命令 265 8.4.1 測試案例 265 8.4.2 程序演示 265 8.5 keys命令 267 8.5.1 測試搜索模式: 268 8.5.2 測試搜索模式:* 269 8.5.3 測試搜索模式:[] 270 8.5.4 測試搜索模式:[^] 272 8.5.5 測試搜索模式:[a-b] 273 8.6 type命令 274 8.6.1 測試案例 274 8.6.2 程序演示 275 8.7 randomkey命令 275 8.7.1 測試案例 275 8.7.2 程序演示 276 8.8 dump和restore命令 277 8.8.1 測試序列化和反序列化 278 8.8.2 測試restore命令的replace參數 279 8.8.3 更改序列化值造成數據無法還原 281 8.9 expire和ttl命令 282 8.9.1 測試key存在和不存在的ttl命令返回值 283 8.9.2 使用expire和ttl命令 284 8.9.3 rename命令不會刪除TTL 286 8.9.4 del、set、getset和*store命令會刪除TTL 287 8.9.5 改變value不會刪除TTL 288 8.9.6 expire命令會重新設置新的TTL 290 8.10 pexpire和pttl命令 291 8.10.1 測試案例 292 8.10.2 程序演示 292 8.11 expireat命令 293 8.11.1 測試案例 294 8.11.2 程序演示 295 8.12 pexpireat命令 296 8.12.1 測試案例 296 8.12.2 程序演示 297 8.13 persist命令 298 8.13.1 測試案例 299 8.13.2 程序演示 299 8.14 move命令 300 8.14.1 測試案例 300 8.14.2 程序演示 301 8.15 object命令 302 8.15.1 object refcount key命令的使用 303 8.15.2 object encoding key命令的使用 305 8.15.3 object idletime key命令的使用 306 8.15.4 object freq key命令的使用 308 8.15.5 object help命令的使用 309 8.16 migrate命令 309 8.16.1 測試案例 310 8.16.2 程序演示 311 8.17 scan命令 312 8.17.1 測試案例 313 8.17.2 程序演示 314 8.18 touch命令 315 8.18.1 測試案例 315 8.18.2 程序演示 316 第9章 HyperLogLog、Bloom Filter類型命令及Redis-Cell模塊 318 9.1 HyperLogLog類型命令 318 9.1.1 pfadd和pfcount命令 318 9.1.2 pfmerge命令 320 9.1.3 測試誤差 321 9.2 Bloom Filter類型命令 322 9.2.1 在Redis中安裝RedisBloom模塊 322 9.2.2 bf.reserve、bf.add和bf.info命令 324 9.2.3 bf.madd命令 328 9.2.4 bf.insert命令 330 9.2.5 bf.exists命令 332 9.2.6 bf.mexists命令 333 9.2.7 驗證布隆過濾器有誤判 334 9.3 使用Redis-Cell模塊實現限流 335 9.3.1 在Redis中安裝Redis-Cell模塊 335 9.3.2 測試案例 336 9.3.3 程序演示 338 第 10章 GEO類型命令 340 10.1 geoadd和geopos命令 340 10.1.1 測試案例 340 10.1.2 程序演示 341 10.2 geodist命令 342 10.2.1 測試案例 342 10.2.2 程序演示 343 10.3 geohash命令 343 10.3.1 測試案例 343 10.3.2 程序演示 344 10.4 georadius命令 345 10.4.1 測試距離單位m、km、ft、mi 345 10.4.2 測試withcoord、withdist、withhash 346 10.4.3 測試asc、desc 348 10.4.4 測試count 349 10.4.5 測試store和storedist 350 10.5 georadiusbymember命令 351 10.5.1 測試距離單位m、km、ft和mi 351 10.5.2 測試withcoord、withdist和withhash 352 10.5.3 測試asc和desc 353 10.5.4 測試count 355 10.5.5 測試store和storedist 356 10.6 刪除GEO數據類型中的元素 357 10.6.1 測試案例 357 10.6.2 程序演示 357 第 11章 Pub/Sub類型命令 359 11.1 publish和subscribe命令 360 11.1.1 測試案例 360 11.1.2 程序演示 361 11.2 unsubscribe命令 364 11.2.1 測試案例 364 11.2.2 程序演示 364 11.3 psubscribe命令 366 11.3.1 模式 的使用 366 11.3.2 模式*的使用 369 11.3.3 模式[xy]的使用 372 11.4 punsubscribe命令 374 11.4.1 測試案例 374 11.4.2 程序演示 374 11.5 pubsub命令 376 11.5.1 pubsub channels [pattern] 子命令 376 11.5.2 pubsub numsub [channel 1…channel N] 子命令 378 11.5.3 pubsub numpat子命令 381 第 12章 Stream類型命令 384 12.1 xadd命令 385 12.1.1 自動生成ID 385 12.1.2 自定義ID 389 12.1.3 流存儲的元素具有順序性 392 12.1.4 使用maxlen限制流的絕對長度 394 12.1.5 使用maxlen ∼ 限制流的近似長度 396 12.2 xlen命令 398 12.2.1 測試案例 398 12.2.2 程序演示 398 12.3 xdel命令 399 12.3.1 基本使用方法 399 12.3.2 添加操作的成功條件 400 12.4 xrange命令 402 12.4.1 使用 和+取得全部元素 403 12.4.2 自動補全特性 404 12.4.3 使用count限制返回元素的個數 407 12.4.4 迭代/分頁流 408 12.4.5 取得單一元素 410 12.5 xrevrange命令 411 12.5.1 使用+和 取得全部元素 412 12.5.2 迭代/分頁流 413 12.6 xtrim命令 416 12.6.1 測試案例 416 12.6.2 程序演示 416 12.7 xread命令 417 12.7.1 實現元素讀取 418 12.7.2 從多個流中讀取元素 421 12.7.3 實現count 425 12.7.4 測試count 427 12.7.5 實現阻塞消息讀取并結合 431 12.8 消費者組的使用 434 12.8.1 與消費者組有關的命令 436 12.8.2 xgroup create和xinfo groups命令 437 12.8.3 xgroup setid命令 441 12.8.4 xgroup destroy命令 443 12.8.5 xinfo stream命令 445 12.8.6 xreadgroup和xinfo consumers命令 447 12.8.7 在xreadgroup命令中使用>或指定ID值 450 12.8.8 xack和xpending命令 458 12.8.9 xgroup delconsumer命令 467 12.8.10 xreadgroup noack命令 471 12.8.11 xclaim命令 475 第 13章 Pipelining和Transaction類型命令 485 13.1 流水線 485 13.1.1 不使用流水線的運行效率 486 13.1.2 使用流水線的運行效率 486 13.2 事務 487 13.2.1 multi和exec命令 487 13.2.2 出現語法錯誤導致全部命令取消執行 489 13.2.3 出現運行錯誤導致錯誤命令取消執行 490 13.2.4 discard命令 492 13.2.5 watch命令 493 13.2.6 unwatch命令 495 第 14章 數據持久化 499 14.1 使用RDB實現數據持久化 499 14.1.1 自動方式:save配置選項 499 14.1.2 手動方式:使用save命令 503 14.1.3 手動方式:使用bgsave命令 505 14.1.4 小結 506 14.2 使用AOF實現數據持久化 506 14.2.1 實現AOF持久化的功能 506 14.2.2 重寫機制 508 14.2.3 小結 510 14.3 使用RDB和AOF混合實現數據持久化 510 14.4 使用shutdown命令正確停止Redis服務 511 第 15章 復制 512 15.1 實現復制 513 15.1.1 在redis.conf配置文件中加入replicaof {masterHost} {masterPort}配置 513 15.1.2 對redis-server命令傳入--replicaof {masterHost} {masterPort}參數 516 15.1.3 在副本節點中使用命令replicaof {masterHost} {masterPort} 517 15.1.4 使用role命令獲得服務器角色信息 518 15.2 取消復制 519 15.3 手動操作實現故障轉移 520 第 16章 哨兵 521 16.1 搭建哨兵環境 522 16.1.1 創建配置文件 522 16.1.2 搭建Master服務器環境 523 16.1.3 搭建Replica服務器環境 523 16.1.4 使用info replication命令查看Master-Replica運行狀態 523 16.1.5 搭建哨兵環境 525 16.1.6 配置的解釋 526 16.1.7 創建哨兵容器 527 16.1.8 使用info sentinel命令查看哨兵運行狀態 527 16.1.9 使用sentinel reset mymaster命令重置哨兵環境 528 16.2 監視多個Master服務器 528 16.3 哨兵常用命令 529 16.4 實現故障轉移 530 16.5 強制實現故障轉移 532 16.6 案例 534 第 17章 集群 536 17.1 使用虛擬槽實現數據分片 537 17.2 自動搭建本地Redis集群環境 538 17.2.1 使用create-cluster start命令啟動Redis集群實例 539 17.2.2 使用create-cluster stop命令停止Redis集群實例 539 17.2.3 使用create-cluster create命令創建Redis集群 540 17.2.4 使用create-cluster watch命令顯示第 一個服務器的前30行輸出信息 541 17.2.5 使用create-cluster tail命令查看指定服務器的日志信息 542 17.2.6 在Redis集群中添加與取得數據 542 17.2.7 使用create-cluster clean命令刪除所有實例數據、日志和配置文件 543 17.2.8 使用create-cluster clean-logs命令只刪除實例日志文件 544 17.3 重定向操作 544 17.4 使用readonly和readwrite命令啟用和禁用Replica服務器可讀 545 17.5 手動搭建分布式Redis集群環境 546 17.5.1 準備配置文件并啟動各服務器 546 17.5.2 使用cluster meet命令實現服務器間握手 547 17.5.3 使用cluster nodes命令查看Redis集群中的服務器信息 549 17.5.4 使用cluster addslots命令分配槽 549 17.5.5 使用cluster reset命令重置服務器狀態 550 17.5.6 向Redis集群中保存和獲取數據 551 17.5.7 在Redis集群中添加Replica服務器 551 17.6 使用cluster myid命令獲得當前服務器ID 553 17.7 使用cluster replicas命令查看指定Master服務器下的Replica服務器信息 554 17.8 使用cluster slots命令查看槽與服務器關聯的信息 554 17.9 使用cluster keyslot命令查看key所屬槽 554 17.10 案例 555 第 18章 內存淘汰策略 556 18.1 內存淘汰策略簡介 556 18.2 內存淘汰策略:noeviction 556 18.3 內存淘汰策略:volatile-lru 557 18.4 內存淘汰策略:volatile-lfu 559 18.5 內存淘汰策略:volatile-random 559 18.6 使用淘汰策略:volatile-ttl 560 18.7 使用淘汰策略:allkeys-lru 562 18.8 內存淘汰策略:allkeys-lfu 564 18.9 使用淘汰策略:allkeys-random 564 第 19章 使用Docker實現容器化 565 19.1 容器 565 19.2 使用Docker的經典場景 566 19.3 Docker的介紹 568 19.4 Docker鏡像的介紹 569 19.5 Docker由4部分組成 569 19.6 Docker具有跨平臺特性 570 19.7 Docker的優點 570 19.8 moby和docker-ce與docker-ee之間的關系 570 19.9 在Ubuntu中搭建Docker環境 571 19.9.1 確認有沒有安裝Docker 571 19.9.2 使用官方的sh腳本安裝Docker 571 19.9.3 確認有沒有成功安裝Docker 571 19.9.4 啟動和停止Docker服務與查看Docker版本 572 19.10 操作Docker服務與容器 573 19.10.1 使用docker info查看Docker信息 573 19.10.2 根據Ubuntu基礎鏡像文件創建容器并運行容器 574 19.10.3 使用sudo docker ps和sudo docker ps -a命令 580 19.10.4 使用docker logs命令 580 19.10.5 使用sudo docker rename oldName newName命令對容器重命名 581 19.10.6 使用docker start命令啟動容器 581 19.10.7 使用docker attach命令關聯容器 583 19.10.8 使用docker exec命令在容器中執行命令 584 19.10.9 使用docker restart命令重新啟動容器 584 19.10.10 使用docker cp命令復制文件到容器中 584 19.10.11 解決Docker顯示中文亂碼 585 19.10.12 安裝ifconfig命令 586 19.11 鏡像文件操作 586 19.11.1 使用docker images命令獲得鏡像文件信息 586 19.11.2 鏡像文件的標識 587 19.11.3 Dockerfile與docker build命令介紹 587 19.11.4 為Ubuntu添加快捷菜單創建文件 588 19.11.5 創建最簡Dockerfile腳本 590 19.11.6 使用docker build命令創建鏡像文件——倉庫名/鏡像文件名 590 19.11.7 使用docker build命令創建鏡像文件——倉庫名/鏡像文件名:標記 591 19.11.8 使用docker build命令創建多個鏡像文件——倉庫名/鏡像文件名:標記 591 19.11.9 使用docker rmi命令刪除鏡像文件 592 19.12 容器管理控制臺portainer 592 19.12.1 使用docker search命令搜索鏡像文件 592 19.12.2 使用docker pull命令拉取鏡像文件 593 19.12.3 創建數據卷 593 19.12.4 端口映射與運行portainer 594 19.12.5 進入portainer查看Docker狀態信息 594 19.13 Docker組件 596 19.14 網絡模式:橋接模式 596 19.14.1 測試橋接模式 597 19.14.2 設置容器使用固定IP地址 598 19.15 網絡模式:主機模式 600 19.16 通過網絡別名實現容器之間通信 600 19.17 常用軟件的Docker鏡像文件與容器 601 19.17.1 創建JDK容器 601 19.17.2 創建Tomcat容器 604 19.17.3 創建MySQL容器 606 19.17.4 創建Redis容器 608 19.17.5 創建ZooKeeper容器 609 19.17.6 創建Oracle 11g容器 610 19.18 啟動Docker服務后容器隨之啟動與取消 611 第 20章 Docker中搭建Redis高可用環境 612 20.1 復制 612 20.1.1 在redis.conf配置文件中加入replicaof {masterHost} {masterPort}配置 612 20.1.2 對redis-server命令傳入--replicaof {masterHost} {masterPort}參數 614 20.1.3 在Replica服務器使用replicaof {masterHost} {masterPort}命令 615 20.2 哨兵 616 20.2.1 搭建哨兵環境 616 20.2.2 創建配置文件 616 20.2.3 搭建Master服務器環境 616 20.2.4 搭建Replica環境 617 20.2.5 使用info replication命令查看Master-Replica運行狀態 618 20.2.6 搭建哨兵環境 619 20.2.7 創建哨兵容器 620 20.2.8 使用info sentinel命令查看哨兵運行狀態 621 20.2.9 使用sentinel reset mymaster命令重置哨兵環境 621 20.3 集群 621 20.3.1 準備配置文件并啟動各服務器 621 20.3.2 使用cluster meet命令實現服務器間握手 623 20.3.3 使用cluster nodes命令查看Redis集群中的服務器信息 623 20.3.4 使用cluster addslots命令分配槽 624 20.3.5 向Redis集群中保存和獲取數據 625 20.3.6 在Redis集群中添加Replics服務器 626 第 21章 Docker中實現數據持久化 628 21.1 使用RDB實現數據持久化 628 21.1.1 自動方式:save配置選項 628 21.1.2 手動方式:使用save命令 630 21.1.3 手動方式:使用bgsave命令 630 21.2 使用AOF實現數據持久化 631 21.3 使用RDB和AOF混合實現數據持久化 632 第 22章 ACL類型命令 634 22.1 acl list命令 634 22.1.1 測試案例 634 22.1.2 程序演示 635 22.2 為默認用戶設置密碼并查看ACL信息 635 22.3 acl save和acl load命令 636 22.3.1 測試案例 636 22.3.2 程序演示 637 22.4 acl users命令 637 22.4.1 測試案例 638 22.4.2 程序演示 638 22.5 acl getuser命令 638 22.5.1 測試案例 638 22.5.2 程序演示 639 22.6 acl deluser命令 640 22.6.1 測試案例 640 22.6.2 程序演示 640 22.7 acl cat命令 641 22.7.1 測試案例 642 22.7.2 程序演示 642 22.8 acl cat 命令 643 22.8.1 測試案例 643 22.8.2 程序演示 644 22.9 acl genpass命令 644 22.9.1 測試案例 645 22.9.2 程序演示 645 22.10 acl whoami命令 645 22.10.1 測試案例 646 22.10.2 程序演示 646 22.11 acl log命令 646 22.11.1 測試案例 646 22.11.2 程序演示 648 22.12 驗證使用setuser命令創建的用戶默認無任何權限 648 22.13 使用setuser on/off啟用或者禁用用戶 649 22.14 使用+和–為用戶設置執行命令的權限 650 22.15 使用+@為用戶設置能執行指定命令類型的權限 651 22.16 使用–@為用戶設置能執行指定命令類型的權限 651 22.17 使用+|為用戶添加能執行的子命令權限 652 22.18 使用+@all和–@all為用戶添加或刪除全部命令的執行權限 653 22.19 使用~pattern限制能訪問key的模式 654 22.20 使用resetkeys清除所有key的訪問模式 655 22.21 使用> 和<為用戶設置或刪除明文密碼 655 22.22 使用#和!為用戶設置或刪除SHA-256密碼 656 22.23 使用nopass和resetpass為用戶設置無密碼或清除所有密碼 657 22.24 使用reset命令重置用戶ACL信息 658 |
序: |
|