前言$ s& s/ p1 b, n/ r
第1章 构建Redis开发环境 1' I9 n: U9 h3 u0 X3 a
1.1 Redis概述 1
" r3 b$ t2 M& D8 p: F, ~& \1 @2 w1.1.1 对比传统数据库与NoSQL数据库 1
2 T/ T) R. c/ F! A* X! W1 U1.1.2 Redis的特点 2
) P0 v' c( u/ o$ x N1.1.3 Redis更适合以分布式集群的方式提供服务 2+ j1 W6 s* T+ ? E7 z" o
1.2 了解必要的Docker技能 38 _/ [( d0 v* `) _; _8 P( K/ p
1.2.1 Docker容器、镜像和仓库 3
6 y& c) i/ P: [5 {; K' c1.2.2 在Windows上安装Docker 37 q) w: p4 K. d# B0 y& B5 o7 n
1.2.3 Docker镜像相关的命令 4
# y/ x1 J: w+ v# [7 W( X& f* R1.2.4 Docker容器相关的命令 4+ [* a# x! o% K; R$ G8 P
1.3 安装和配置基于Docker的Redis环境 5
5 b0 v- T5 S- P7 r! z9 K, S1.3.1 用docker pull下载Redis镜像 5
* N) @2 B* }6 w. m; q: i) V1.3.2 用docker run启动Redis容器 5
7 {3 T$ N# a# q: d1.3.3 用docker logs观察Redis启动效果 6! G3 W8 V i7 l
1.3.4 通过docker exec进入Redis容器 6
! L7 R, i; _- V1.3.5 停止、重启和删除Redis容器 7
. D# U! K" {3 `/ U( N1.3.6 查看Redis的版本 81 V" _- ]. m/ I9 J r: @0 n; q
1.3.7 Redis服务器和客户端 8
# b% x/ q1 B9 z! P( G3 I# h. J1.3.8 总结容器和Redis的相关命令 9& \6 s& L1 I4 x: j& S+ G6 \2 d# Z
1.4 本章小结 10# G. ]" z, R. [4 _! G
第2章 实践Redis的基本数据类型 11
2 j- E5 K6 M4 |( p2 O2.1 Redis缓存初体验 11
# W0 c8 |; i5 Y9 ? {) j1 f2.1.1 用redis-cli启动客户端并缓存数据 11 t; W; P# U( Z( C! Z4 v
2.1.2 设置数据的生存时间 12
/ d. l$ C7 \9 V( Y+ X; K* S% k2.2 针对字符串的命令 13
' P% V' N$ X4 O1 [$ R1 L" n3 C2.2.1 读写字符串的set和get命令 13
8 k! g" B7 R8 F! r* b3 ]2.2.2 设置和获取多个字符串的命令 14
4 q4 B/ ? }& g3 S: C J2.2.3 对值进行增量和减量操作 15( M# r5 z2 L* d- i" _, H$ d3 U
2.2.4 通过getset命令设置新值 16
( H) G7 g3 Y, N2 q" l2.2.5 针对字符串的其他操作 179 \7 P' i6 K7 ]: h' k* n: O
2.3 针对哈希类型变量的命令 17% S( [$ |% d6 B6 A' N; w3 c
2.3.1 设置并获取哈希值 182 b! g p7 o1 ~3 o+ w8 d1 c; ~
2.3.2 hsetnx命令 193 G1 q6 t3 T9 c5 I7 @ U
2.3.3 针对key的相关操作 19$ d$ L3 l3 h% W* Z ?
2.3.4 用hexists命令判断值是否存在 20
# g. N- f: u7 K2.3.5 对哈希类型数据的删除操作 213 S7 c; B+ ~+ S% T: Y9 n4 I
2.4 针对列表类型变量的命令 21
8 _. C- H+ |* R0 \0 c' z2.4.1 读写列表的命令 21% e5 x/ A& n Q- z: h
2.4.2 lpushx和rpushx命令 23: l, Q- Q8 L' i2 b& |2 X; @
2.4.3 用list模拟堆栈和队列 248 }, N8 ~$ T: f, D; A
2.4.4 用lrange命令获取指定区间内的数据 25
N9 f- w. ], R2.4.5 用lset命令修改列表数据 26! H" [- d9 e) p0 y8 ^7 d; O
2.4.6 删除列表数据的命令 26' o# [! M1 f+ z- ]9 v- {
2.5 针对集合的命令 286 D6 @# C2 ?, s9 Q& b' v
2.5.1 读写集合的命令 28/ |6 {+ _! C. X
2.5.2 列表和集合类数据的使用场景 295 U+ i+ K0 D# \3 t
2.5.3 用sismember命令判断元素是否存在 29
% H: z- a4 x$ o) r' I( Z! X2.5.4 获取集合的交集、并集和差集 29
# i% h9 ]% }5 ^ N) V2.5.5 用srem命令删除集合数据 30. W0 D6 _; V# G, y; o
2.6 针对有序集合的命令 31( {! Q b' E, q# B ? X9 i {
2.6.1 读写有序集合的命令 31
% ?2 b# V+ V* x$ i, w2.6.2 通过zincrby命令修改元素的分值 33
* x/ M# r/ D% ?- y2.6.3 用zscore命令获取指定元素的分数 33 B5 U7 H4 y2 e# q* Y7 U
2.6.4 查看有序集合里的元素排名 349 u& e* a9 O/ L* I
2.6.5 删除有序集合里的值 351 E0 n/ E: L. v" b7 t3 X K
2.7 本章小结 36, |7 G9 u4 D v5 n% Y$ _' A3 @
第3章 实践Redis的常用命令 37
7 V, Z, O. l" ~! m! ~7 Z- ^3.1 键操作命令 37& D3 ^ X ]) Z( [& F$ } @
3.1.1 用exists命令判断键是否存在 37
& ~5 F8 A4 E* b. R( g7 K3.1.2 用keys命令查找键 38" q4 U/ T0 p* L1 z: p$ D: J9 ?+ h
3.1.3 用scan命令查找键 38
; j" D0 C5 ^% A/ l* j3.1.4 重命名键 39 java8.com1 b( O1 e$ F) ^
3.1.5 用del命令删除键 409 I. ~* ]1 z. H$ b4 L
3.1.6 关于键生存时间的命令 41' J( Y6 Y" \1 N3 }% u
3.2 HyperLogLog相关命令 42
3 {* U, }, k) a7 n$ I l6 P3.2.1 用pfadd添加键值对 42
( Z* m @6 Q& m% k3.2.2 用pfcount统计基数值 43
1 O' ?7 f4 ~3 C- p& H( {3.2.3 用pfmerge进行合并操作 43
9 ~. @7 G1 @5 E' d4 H, h R3.2.4 统计网站访问总人数 44
0 B( h& H) _ K6 Y6 O5 b3.3 lua脚本相关命令 44* \# R+ o; A# }/ [
3.3.1 把lua脚本装载到缓存里 45% g( G* L- } W. [( A+ ~3 F
3.3.2 通过evalsha命令执行缓存中的脚本 45
% \1 z) k" {" |3.3.3 清空缓存中lua脚本的命令 450 h7 p) o. N' x6 v! p: V& Z
3.3.4 用eval命令执行lua脚本 466 g3 z- F" A- v! k5 L; [
3.4 排序相关命令 46
7 ~- f- v* F3 i l9 K3.4.1 用sort命令进行排序 46, p% H2 X# N0 P/ h
3.4.2 用by参数指定排序模式 48
* t u: y, c7 l, o0 c4 o* N# C3.4.3 用limit参数返回部分排序结果 48, r: N* f& `$ J+ H
3.4.4 sort命令里get参数的用法 49; v' z- p5 e* H6 _/ x Q
3.4.5 通过store参数提升性能 50
% u* J# y, B! ~3.5 本章小结 51, R5 c8 q: B4 W% J( Q/ A
第4章 实践Redis服务器和客户端的操作 52: x F6 \$ k" V8 u% N
4.1 Redis服务器管理客户端的命令 52' G n9 I& ^& C+ P" Z9 Z% _
4.1.1 获取和设置客户端的名字 52: e; _; Q" I- ^' m8 Z2 q
4.1.2 通过client list命令查看客户端的信息 53
9 z3 n/ D: G3 g: t! j7 h" F/ u4.1.3 通过client pause命令暂停客户端的命令 53
; L' ~- M" f( y+ ]* G9 I7 C4.1.4 通过client kill命令中断客户端连接 54. {( J0 k1 m) P1 S3 q! d# c
4.1.5 通过shutdown命令关闭服务器和客户端 54
8 O4 G0 ^0 i3 ?- t4.2 查看Redis服务器的详细信息 55% D- g$ }7 r x Q! ?4 V# i
4.2.1 通过info命令查看服务器信息 550 ^& ` q: ^& m$ n
4.2.2 查看客户端连接状况 56
$ K/ S+ X& x5 z7 L3 |' C4.2.3 观察连接数 56
- |; I( J7 ?4 F& j4.2.4 查看每秒执行多少条指令 56( m, A+ d5 D) ^7 @
4.2.5 观察内存用量 57% O" T; }6 p. ]9 m ^& n) r4 c