作 者:黃健宏 著
定 價:139
出 版 社:機械工業出版社
出版日期:2019年09月01日
頁 數:556
裝 幀:平裝
ISBN:9787111636526
《Redis設計與實現》作者、《Redis實戰》譯者、《Redis命令參考》譯者黃健宏*新力作,學習 Redis 的信心之選。
●前言
第1章 引言 1
1.1 Redis簡介 1
1.2 內容編排 3
1.3 目標讀者 4
1.4 預備工作 4
1.5 執行命令 5
1.6 配置服務器 6
1.7 示例代碼 7
1.8 版本說明 7
1.9 讀者服務網站 8
1.10 啟程 8
第一部分 數據結構與應用
第2章 字符串 10
2.1 SET:為字符串鍵設置值 11
2.2 GET:獲取字符串鍵的值 13
2.3 GETSET:獲取舊值並設置新值 14
示例:緩存 14
示例:鎖 16
2.4 MSET:一次為多個字符串鍵設置值 18
2.5 MGET:一次獲取多個字符串鍵的值 19
2.6 MSETNX:隻在鍵不存在的情況下,一次為多個字符串鍵設置值 20
示例:存儲文章信息 20
2.7 STRLEN:獲取字符串值的字節長度 25
2.8 字符串值的索引 26
2.9 GETRANGE:獲取字符串值指定索引範圍上的內容 26
2.10 SETRANGE:對字符串值的指定索引範圍進行設置 27
示例:給文章存儲程序加上文章長度計數功能和文章預覽功能 31
2.11 APPEND:追加新內容到值的末尾 32
示例:存儲日志 34
2.12 使用字符串鍵存儲數字值 37
2.13 INCRBY、DECRBY:對整數值執行加法操作和減法操作 37
2.14 INCR、DECR:對整數值執行加1操作和減1操作 40
2.15 INCRBYFLOAT:對數字值執行浮點數加法操作 41
示例:ID生成器 43
示例:計數器 44
示例:限速器 46
2.16 重點回顧 48
第3章 散列 49
3.1 散列簡介 50
3.2 HSET:為字段設置值 51
3.4 HGET:獲取字段的值 54
示例:實現短網址生成程序 55
3.5 HINCRBY:對字段存儲的整數值執行加法或減法操作 58
3.6 HINCRBYFLOAT:對字段存儲的數字值執行浮點數加法或減法操作 59
示例:使用散列鍵重新實現計數器 60
3.7 HSTRLEN:獲取字段值的字節長度 63
3.8 HEXISTS:檢查字段是否存在 63
3.9 HDEL:刪除字段 64
3.10 HLEN:獲取散列包含的字段數量 65
示例:實現用戶登錄會話 66
3.11 HMSET:一次為多個字段設置值 69
3.12 HMGET:一次獲取多個字段的值 70
3.13 HKEYS、HVALS、HGETALL:獲取所有字段、所有值、所有字段和值 71
示例:存儲圖數據 73
示例:使用散列鍵重新實現文章存儲程序 77
3.14 散列與字符串 79
3.15 重點回顧 82
第4章 列表 83
4.1 LPUS素推入列表左端 84
4.2 RPUS素推入列表右端 86
4.3 LPUSHX、RPUSHX:隻對已存在的列表執行推入操作 88
4.4 LPOP:彈出列表最素 90
4.5 RPOP:彈出列表最素 91
4.6 RPOPLPUSH:將右端素推入左端 92
示例:優選先出隊列 95
4.7 LLEN:獲取列表的長度 96
4.8 LINDEX:獲取指定索素 97
4.9 LRANGE:獲取指定索引範素 98
示例:分頁 101
4.10 LSET:為指定索引素 103
4.11 LINSER素插入列表 104
4.12 LTRIM:修剪列表 105
4.13 LREM:從列表中移素 107
示例:待辦事項列表 109
4.14 BLPOP:阻塞式左端彈出操作 112
4.15 BRPOP:阻塞式右端彈出操作 114
4.16 BRPOPLPUSH:阻塞式彈出並推入操作 114
示例:帶有阻塞功能的消息隊列 116
4.17 重點回顧 119
第5章 集合 120
5.1 SAD素添加到集合 121
5.2 SREM:從集合素 122
5.3 SMOV素從一個集合移動到另一個集合 123
5.4 SMEMBERS:獲取集合包含素 125
5.5 SCARD:獲取集合素數量 126
5.6 SISMEMBER:檢素是否存在於集合 127
示例:專享計數器 128
示例:打標簽 129
示例: 131
示例:投票 132
示例:社交關繫 135
5.7 SRANDMEMBER:隨機獲取集素 137
5.8 SPOP:隨機地從集合中移除指定素 139
示例:抽獎 141
5.9 SINTER、SINTERSTORE:對集合執行交集計算 142
5.10 SUNION、SUNIONSTORE:對集合執行並集計算 143
5.11 SDIFF、SDIFFSTORE:對集合執行差集計算 144
示例:共同關注與推薦關注 146
示例:使用反向索引構建商品篩選器 149
5.12 重點回顧 152
第6章 有序集合 153
6.1 ZADD:添加或更新成員 154
6.2 ZREM:移除指定的成員 156
6.3 ZSCORE:獲取成員的分值 157
6.4 ZINCRBY:對成員的分值執行自增或自減操作 158
6.5 ZCARD:獲取有序集合的大小 160
6.6 ZRANK、ZREVRANK:獲取成員在有序集合中的排名 161
6.7 ZRANGE、ZREVRANGE:獲取指定索引範圍內的成員 162
示例:排行榜 165
6.8 ZRANGEBYSCORE、ZREVRAN-GEBYSCORE:獲取指定分值範圍內的成員 167
6.9 ZCOUNT:統計指定分值範圍內的成員數量 171
示例:時間線 172
6.10 ZREMRANGEBYRANK:移除指定排名範圍內的成員 175
6.11 ZREMRANGEBYSCORE:移除指定分值範圍內的成員 176
6.12 ZUNIONSTORE、ZINTERSTORE:有序集合的並集運算和交集運算 176
示例:商品推薦 181
6.13 ZRANGEBYLEX、ZREVRAN-GEBYLEX:返回指定字典序範圍內的成員 182
6.14 ZLEXCOUNT:統計位於字典序指定範圍內的成員數量 185
6.15 ZREMRANGEBYLEX:移除位於字典序指定範圍內的成員 186
示例:自動補全 187
6.16 ZPOPMAX、ZPOPMIN:彈出分值優選和大力度優惠的成員 188
6.17 BZPOPMAX、BZPOPMIN:阻塞式優選素彈出操作 189
6.18 重點回顧 191
第7章 HyperLogLog 192
7.1 HyperLogLog簡介 193
7.2 PFADD:素進行計數 193
7.3 PFCOUNT:返回集合的近似基數 194
示例:優化專享計數器 195
示例:檢測重復信息 196
7.4 PFMERGE:計算多個HyperLogLog的並集 198
示例:實現每周/月度/年度計數器 199
7.5 重點回顧 200
第8章 位圖 201
8.1 SETBIT:設置二進制位的值 201
8.2 GETBIT:獲取二進制位的值 203
8.3 BITCOUNT:統計被設置的二進制位數量 204
示例:用戶行為記錄器 207
8.4 BIT :查找第一個指定的二進制位值 208
8.5 BITOP:執行二進制位運算 211
示例:0-1矩陣 212
8.6 BITFIELD:在位圖中存儲整數值 214
示例:緊湊計數器 219
8.7 使用字符串命令對位圖進行操作 221
8.8 重點回顧 222
第9章 地理坐標 223
9.1 GEOADD:存儲坐標 224
9.2 GEO :獲取指定位置的坐標 224
9.3 GEODIST:計算兩個位置之間的直線距離 225
示例:具有基本功能的用戶地理位置程序 226
9.4 GEORADIUS:查找指定坐標半徑範圍內的其他位置 228
9.5 GEORADIUSBYMEMBER:查找指定位置半徑範圍內的其他位置 232
示例:查找附近用戶 233
9.6 GEOHASH:獲取指定位置的Geohash值 235
9.7 使用有序集合命令操作GEO數據 236
9.8 重點回顧 237
第10章 流 238
10.1 XADD:素到流的末尾 239
10.2 XTRIM:對流進行修剪 243
10.3 XDEL:移素 244
10.4 XLEN:獲取流素數量 244
10.5 XRANGE、XREVRANGE:訪素 245
10.6 XREAD:以阻塞或非阻塞方式素 251
示例:消息隊列 258
10.7 消費者組 260
10.8 XGROUP:管理消費者組 264
10.9 XREADGROUP:讀取消費者組中的消息 268
10.10 XPENDING:顯示待處理消息的相關信息 270
10.11 XACK:將消息標記為“已處理” 271
10.12 XCLAIM:轉移消息的歸屬權 272
10.13 XINFO:查看流和消費者組的相關信息 273
示例:為消息隊列提供消費者組功能 275
10.14 重點回顧 277
第二部分 附加功能
第11章 數據庫 280
第12章 自動過期 313
第13章 流水線與事務 329
第14章 Lua腳本 348
第15章 持久化 380
第16章 發布與訂閱 400
第17章 模塊 412
第三部分 多機功能
第18章 復制 444
第19章 Sentinel 460
第20章 集群 481
本書繫統化介紹Redis命令及其應用場景,內容深入,圖文並茂,巨細靡遺,是掌握Redis的案頭推薦參考書。本書主要分為三大部分,共20章。第一部分“數據結構與應用”介紹Redis最核心的九種數據結構,列舉了操作這些數據結構的眾多命令及其詳細信息,並在其中穿插介紹了多個使用Redis命令構建應用序的示例。通過這些程序示例,讀者可以進一步加深對命令的認識,並學會如何在實際中應用這些命令,從而達到學而致用的目的。第二部分“附加功能”介紹Redis在數據結構的基礎上為用戶提供的額外功能。其中包括數據庫管理、自動過期功能、流水線與事務、Lua腳本、持久化、發布與訂閱、模塊管理等。讀者可以通過閱讀這一部分來學會如何將Redis應用在更多場景中。第三部分“多機功能”介紹Redis的三項多機功能:復制、Sentinel和集群。讀者可以通過閱讀這一部分來獲得擴展Redis讀寫性能的相關知識,並根據自己的情況等
時光荏苒,距離我的第一本書《Redis設計與實現》出版已經過去了整整五年。在這五年間,Redis從一個不為人熟知、隻有少量應用的嶄新數據庫,逐漸變成了內存數據庫領域的事實標準。五年前,當人們提到Redis的時候,語氣通常都充滿了懷疑:“Redis我還是第一次聽說,它好用嗎?”“Redis比起Memcached有什麼優勢?”“用Redis存儲數據安全嗎,不會丟數據吧?”然而時至今日,經過大量的實踐應用,Redis簡潔高效、安全穩定的特性已經深入人心。無論是國內還是國外,從五百強公司到小型初創公司都在使用Redis,很多雲服務提供商還以Redis為基礎構建了相應的緩存服務、消息隊列服務以及內存存儲服務,當你使用這些服務時,實際上就是在使用Redis。Redis除了變得越來越受歡迎之外,另一個變化就是更新速度越來越快,功能也變得越來越多、越來越強大,比如說,Redis的數據結構數量已經從過去的五等