虛擬化高性能NoSQL存儲案例精粹 Redis+Docker

虛擬化高性能NoSQL存儲案例精粹 Redis+Docker

《虛擬化高性能NoSQL存儲案例精粹 Redis+Docker》是2021年人民郵電出版社出版的圖書,作者是高洪岩。

基本介紹

  • 中文名:《虛擬化高性能NoSQL存儲案例精粹 Redis+Docker
  • 作者:高洪岩
  • 出版社:人民郵電出版社
  • 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

相關詞條

熱門詞條

聯絡我們