NoSQL開發完美方案:Redis+Docker高性能虛擬化實戰 ,

作者:高洪岩

出版社:深智數位

ISBN:9789860776140

$89.00

產品號碼: 158336 貨號: 9789860776140 分類: , 標籤: , , , ,
還在MySQL嗎?
全世界都在NoSQL了,首選當然就是Redis!
好裝好用還能用Docker做叢集分佈,帶你進入巨量資料的世界。

  絕大多數Redis初學者只會拿Redis當Map用,只會在單機環境上只會針對String資料類型進行SET和GET操作,這當然不是Redis!Redis本身就支援多台叢集的功能,這才是NoSQL的精神所在。當系統出現大量存取需求時,單台Redis伺服器並沒有形成高可用的運行環境,這也是大家使用Redis最常見的錯誤。

  本書程式設計師提供一本實戰開發的Redis圖書,包括高頻使用的Redis運行維護知識、使用常用的Redis Java Client API框架Jedis來操作Redis伺服器的知識和技能。書中充實地介紹了常用Command命令的使用方法,介紹的命令的覆蓋率達到90%以上。當然最流行的Docker佈署方式也是Redis的最佳拍檔,本書也完全介紹。

  ▌本書重點
  完整解析Redis的5大資料類型String、Hash、List、Set和Sorted Set
  Connection類型命令
  Key類型命令
  HyperLogLog、Redis Bloom布隆篩檢程式
  控制頻率的Redis-Cell模組
  高性能佇列的Pub/Sub命令
  資料排序統計的Streaming
  批次執行的Pipelining
  持久化、主從複製以及檢查點的故障發現/轉移
  使用ACL來對Key進行保護

  ▌目標讀者
  所有使用 Redis 和 Jedis 進行程式設計的開發人員。
  伺服器和資料儲存系統開發人員。
  分散式系統架構師。
  網際網路技術程式設計師。
  網際網路技術架構師。

目錄

01 架設Redis 開發環境
1.1 什麼是NoSQL
1.2 為什麼使用NoSQL
1.3 NoSQL 的優勢
1.4 NoSQL 的劣勢
1.5 Redis 介紹及使用場景
1.6 Redis 沒有Windows 版本
1.7 架設Linux 環境
1.8 架設Redis 環境
1.9 啟動Redis 服務
1.10 停止服務
1.11 測試Redis 服務性能
1.12 更改Redis 服務通訊埠編號
1.13 對Redis 設定密碼
1.14 連接遠端Redis 伺服器
1.15 使用set 和get 命令存設定值與中文的處理
1.16 設定key 名稱的建議
1.17 使用Redis Desktop Manager圖形介面工具管理Redis
1.18 在Java 中操作Redis
1.19 使用–bigkeys 參數找到大key
1.20 在redis.conf 設定檔中使用include 匯入其他設定檔

02 Connection 類型命令
2.1 auth 命令
2.2 echo 命令
2.3 ping 命令
2.4 quit 命令
2.5 select 命令
2.6 swapdb 命令
2.7 驗證Pool 類別中的連接屬於長連接
2.8 增加Redis 最大連接數

03 String 類型命令
3.1 append 命令
3.2 incr 命令
3.3 incrby 命令
3.4 incrbyfloat 命令
3.5 decr 命令
3.6 decrby 命令
3.7 set 和get 命令
3.8 strlen 命令
3.9 setrange 命令
3.10 getrange 命令
3.11 setbit 和getbit 命令
3.12 bitcount 命令
3.13 bitop 命令
3.14 getset 命令
3.15 msetnx 命令
3.16 mset 命令
3.17 mget 命令
3.18 bitfield 命令
3.19 bitpos 命令
3.20 「秒殺」核心演算法實現
3.21 使用Redisson 框架實現分散式鎖
3.22 處理慢查詢

04 Hash 類型命令
4.1 hset 和hget 命令
4.2 hmset 和hmget 命令
4.3 hlen 命令
4.4 hdel 命令
4.5 hexists 命令
4.6 hincrby 和hincrbyfloat命令
4.7 hgetall 命令
4.8 hkeys 和hvals 命令
4.9 hsetnx 命令
4.10 hstrlen 命令
4.11 hscan 命令
4.12 使用sort 命令對雜湊進行排序

05 List 類型命令
5.1 rpush、llen 和lrange 命令
5.2 rpushx 命令
5.3 lpush 命令
5.4 lpushx 命令
5.5 rpop 命令
5.6 lpop 命令
5.7 rpoplpush 命令
5.8 lrem 命令
5.9 lset 命令
5.10 ltrim 命令
5.11 linsert 命令
5.12 lindex 命令
5.13 blpop 命令
5.14 brpop 命令
5.15 brpoplpush 命令
5.16 使用sort 命令對串列進行排序
5.17 List 類型命令的常見使用模式

06 Set 類型命令
6.1 sadd、smembers 和scard命令
6.2 sdiff 和sdiffstore 命令
6.3 sinter 和sinterstore 命令
6.4 sismember 命令
6.5 smove 命令
6.6 srandmember 命令
6.7 spop 命令
6.8 srem 命令
6.9 sunion 和sunionstore 命令
6.10 sscan 命令

07 Sorted Set 類型命令
7.1 zadd、zrange 和zrevrange命令
7.2 zcard 命令
7.3 zcount 命令
7.4 zincrby 命令
7.5 zunionstore 命令
7.6 zinterstore 命令
7.7 zrangebylex、zrevrangebylex和zremrangebylex 命令
7.8 zlexcount 命令
7.9 zrangebyscore、zrevrangebyscore 和zremrangebyscore 命令
7.10 zpopmax 和zpopmin 命令
7.11 bzpopmax 和bzpopmin命令
7.12 zrank、zrevrank 和zremrangebyrank 命令
7.13 zrem 命令
7.14 zscore 命令
7.15 zscan 命令
7.16 sort 命令

08 Key 類型命令
8.1 del 和exists 命令
8.2 unlink 命令
8.3 rename 命令
8.4 renamenx 命令
8.5 keys 命令
8.6 type 命令
8.7 randomkey 命令
8.8 dump 和restore 命令
8.9 expire 和ttl 命令
8.10 pexpire 和pttl 命令
8.11 expireat 命令
8.12 pexpireat 命令
8.13 persist 命令
8.14 move 命令
8.15 object 命令
8.16 migrate 命令
8.17 scan 命令
8.18 touch 命令

09 HyperLogLog、Bloom Filter 類型命令及Redis-Cell 模組
9.1 HyperLogLog 類型命令
9.2 Bloom Filter 類型命令
9.3 使用Redis-Cell 模組實現限流

10 GEO 類型命令
10.1 geoadd 和geopos 命令
10.2 geodist 命令
10.3 geohash 命令
10.4 georadius 命令
10.5 georadiusbymember 命令
10.6 刪除GEO 資料類型中的元素

11 Pub/Sub 類型命令
11.1 publish 和subscribe 命令
11.2 unsubscribe 命令
11.3 psubscribe 命令
11.4 punsubscribe 命令
11.5 pubsub 命令

12 Stream 類型命令
12.1 xadd 命令
12.2 xlen 命令
12.3 xdel 命令
12.4 xrange 命令
12.5 xrevrange 命令
12.6 xtrim 命令
12.7 xread 命令
12.8 消費者組的使用

13 Pipelining 和Transaction 類型命令
13.1 管線
13.2 交易

14 資料持久化
14.1 使用RDB 實現資料持久化
14.2 使用AOF 實現資料持久化
14.3 使用RDB 和AOF 混合實現資料持久化
14.4 使用shutdown 命令正確停止Redis 服務

15 複製
15.1 實現複製
15.2 取消複製
15.3 手動操作實現容錯移轉

16 哨兵
16.1 架設檢查點環境
16.2 監視多個Master 伺服器
16.3 檢查點常用命令
16.4 實現容錯移轉
16.5 強制實現容錯移轉
16.6 案例

17 叢集
17.1 使用虛擬槽實現資料分片
17.2 自動架設本地Redis 叢集環境
17.3 重新導向操作
17.4 使用readonly 和readwrite命令啟用和禁用Replica伺服器讀取
17.5 手動架設分散式Redis 叢集環境
17.6 使用cluster myid 命令獲得當前伺服器ID
17.7 使用cluster replicas 命令查看指定Master 伺服器下的Replica 伺服器資訊
17.8 使用cluster slots 命令查看槽與伺服器連結的資訊
17.9 使用cluster keyslot 命令查看key 所屬槽
17.10 案例

18 記憶體淘汰策略
18.1 記憶體淘汰策略簡介
18.2 記憶體淘汰策略:noeviction
18.3 記憶體淘汰策略:volatile-lru
18.4 記憶體淘汰策略:volatile-lfu
18.5 記憶體淘汰策略:volatile-random
18.6 使用淘汰策略:volatile-ttl
18.7 使用淘汰策略:allkeys-lru
18.8 記憶體淘汰策略:allkeys-lfu
18.9 使用淘汰策略:allkeys-random

19 使用Docker實現容器化
19.1 容器
19.2 使用Docker 的經典場景
19.3 Docker 的介紹
19.4 Docker 映像檔的介紹
19.5 Docker 由4 部分組成
19.6 Docker 具有跨平台特性
19.7 Docker 的優點
19.8 moby 和docker-ce 與docker-ee 之間的關係
19.9 在Ubuntu 中架設Docker環境
19.10 操作Docker 服務與容器
19.11 映像檔檔案操作
19.12 容器管理主控台portainer
19.13 Docker 元件
19.14 網路模式:橋接模式
19.15 網路模式:主機模式
19.16 透過網路別名實現容器之間通訊
19.17 常用軟體的Docker 映像檔檔案與容器
19.18 啟動Docker 服務後容器隨之啟動與取消

20 Docker 中架設Redis高可用環境
20.1 複製
20.2 檢查點
20.3 叢集

21 Docker 中實現資料持久化
21.1 使用RDB 實現資料持久化
21.2 使用AOF 實現資料持久化
21.3 使用RDB 和AOF 混合實現資料持久化

22 ACL 類型命令
22.1 acl list 命令
22.2 為預設使用者設定密碼並查看ACL 資訊
22.3 acl save 和acl load 命令
22.4 acl users 命令
22.5 acl getuser 命令
22.6 acl deluser 命令
22.7 acl cat 命令
22.8 acl cat 命令
22.9 acl genpass 命令
22.10 acl whoami 命令
22.11 acl log 命令
22.12 驗證使用setuser 命令創建的使用者預設無任何許可權
22.13 使用setuser on/off 啟用或禁用使用者
22.14 使用+ 和– 為使用者設定執行命令的許可權
22.15 使用+@ 為使用者設定能執行指定命令類型的許可權
22.16 使用- @ 為使用者設定能執行指定命令類型的許可權
22.17 使用+ | 為使用者增加能執行的子命令許可權
22.18 使用+@all 和- @all 為使用者增加或刪除全部命令的執行許可權
22.19 使用~pattern 限制能存取key 的模式
22.20 使用resetkeys 清除所有key的存取模式
22.21 使用> 和< 為使用者設定或刪除純文字密碼
22.22 使用# 和! 為使用者設定或刪除SHA-256 密碼
22.23 使用nopass 和resetpass 為使用者設定無密碼或清除所有密碼
22.24 使用reset 命令重置使用者ACL 資訊

 

作者介紹

作簡介

高洪岩

  某世界500強企業高級項目經理,10餘年項目管理與開發經驗,對多線程和並發,Android移動開發,智能報表,分佈式處理等企業級架構技術深耕多年,深諳Java技術開發難點與要點,擁有良好的技術素養和豐富的實踐經驗,一直在持續關注架構的優化和重構領域,喜歡技術與教育相結合的方式共享知識。
 

出版地

台灣

出版日期

07/19/2021

印刷

單色印刷

版別

初版

裝訂

線裝

語系

繁體中文

頁數

868