针对 Redis 的安装、基本命令、数据类型以及持久化的详细扩展,包括对应的 Redis 指令:
Redis篇
├── Redis 基础
│ ├── Redis 的安装
│ │ ├── 在 Linux 上安装 Redis
│ │ │ ├── 从源代码编译安装
│ │ │ └── 使用包管理器安装
│ │ ├── 在 Windows 上安装 Redis
│ │ │ ├── 使用 Windows 版本的 Redis
│ │ │ └── 使用 Docker 容器安装
│ │ └── 在 macOS 上安装 Redis
│ │ ├── 使用 Homebrew 安装
│ │ └── 从源代码编译安装
│ ├── Redis 的基本命令
│ │ ├── 通用命令
│ │ │ ├── CONFIG GET key
│ │ │ ├── CONFIG SET key value
│ │ │ ├── INFO [section]
│ │ │ └── SHUTDOWN
│ │ ├── 数据操作命令
│ │ │ ├── SET key value
│ │ │ ├── GET key
│ │ │ ├── DEL key [key ...]
│ │ │ ├── EXISTS key [key ...]
│ │ │ ├── TYPE key
│ │ │ └── TTL key
│ │ ├── 键空间命令
│ │ │ ├── KEYS pattern
│ │ │ ├── SCAN cursor [MATCH pattern] [COUNT count]
│ │ │ └── RANDOMKEY
│ │ ├── 事务命令
│ │ │ ├── MULTI
│ │ │ ├── EXEC
│ │ │ ├── DISCARD
│ │ │ └── WATCH key [key ...]
│ │ └── 连接命令
│ │ ├── AUTH password
│ │ ├── ECHO message
│ │ ├── QUIT
│ │ └── SELECT index
│ ├── Redis 的数据类型
│ │ ├── String
│ │ │ ├── SET key value
│ │ │ ├── GET key
│ │ │ ├── INCR key
│ │ │ ├── DECR key
│ │ │ ├── INCRBY key increment
│ │ │ ├── DECRBY key decrement
│ │ │ ├── MSET key value [key value ...]
│ │ │ ├── MGET key [key ...]
│ │ │ ├── SETEX key seconds value
│ │ │ ├── PSETEX key milliseconds value
│ │ │ └── GETSET key value
│ │ ├── Hash
│ │ │ ├── HSET key field value
│ │ │ ├── HGET key field
│ │ │ ├── HMSET key field value [field value ...]
│ │ │ ├── HMGET key field [field ...]
│ │ │ ├── HDEL key field [field ...]
│ │ │ ├── HEXISTS key field
│ │ │ ├── HLEN key
│ │ │ ├── HKEYS key
│ │ │ ├── HVALS key
│ │ │ ├── HGETALL key
│ │ │ └── HSCAN cursor [MATCH pattern] [COUNT count]
│ │ ├── List
│ │ │ ├── LPUSH key value [value ...]
│ │ │ ├── RPUSH key value [value ...]
│ │ │ ├── LPOP key
│ │ │ ├── RPOP key
│ │ │ ├── LINSERT key BEFORE|AFTER pivot value
│ │ │ ├── LINDEX key index
│ │ │ ├── LSET key index value
│ │ │ ├── LREM key count value
│ │ │ ├── LTRIM key start stop
│ │ │ ├── LLEN key
│ │ │ ├── LRANGE key start stop
│ │ │ └── BRPOP key [key ...] timeout
│ │ ├── Set
│ │ │ ├── SADD key member [member ...]
│ │ │ ├── SMEMBERS key
│ │ │ ├── SREM key member [member ...]
│ │ │ ├── SISMEMBER key member
│ │ │ ├── SCARD key
│ │ │ ├── SINTER key [key ...]
│ │ │ ├── SUNION key [key ...]
│ │ │ ├── SDIFF key [key ...]
│ │ │ ├── SSCAN key cursor [MATCH pattern] [COUNT count]
│ │ │ └── SRANDMEMBER key [count]
│ │ ├── Sorted Set
│ │ │ ├── ZADD key score member [score member ...]
│ │ │ ├── ZRANGE key start stop [WITHSCORES]
│ │ │ ├── ZREVRANGE key start stop [WITHSCORES]
│ │ │ ├── ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
│ │ │ ├── ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]
│ │ │ ├── ZREM key member [member ...]
│ │ │ ├── ZREMRangeByRank key start stop
│ │ │ ├── ZREMRangeByScore key min max
│ │ │ ├── ZCARD key
│ │ │ ├── ZSCORE key member
│ │ │ ├── ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
│ │ │ ├── ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
│ │ │ └── ZSCAN key cursor [MATCH pattern] [COUNT count]
│ │ └── 其他数据类型
│ │ ├── BitField
│ │ ├── Stream
│ │ └── Module-specific Types
│ └── Redis 的持久化
│ ├── RDB
│ │ │ ├── 配置选项
│ │ │ │ ├── save <seconds> <changes>
│ │ │ │ ├── dbfilename <filename>
│ │ │ │ └── dir <directory>
│ │ │ ├── 持久化流程
│ │ │ │ ├── 触发条件
│ │ │ │ ├── 写入过程
│ │ │ │ └── 文件恢复
│ │ │ └── 最佳实践
│ │ └── AOF
│ │ ├── 配置选项
│ │ │ ├── appendonly yes/no
│ │ │ ├── appendfilename <filename>
│ │ │ ├── dir <directory>
│ │ │ ├── appendfsync always/everysec/no
│ │ │ └── no-appendfsync-on-rewrite yes/no
│ │ ├── 持久化流程
│ │ │ ├── 触发条件
│ │ │ ├── 写入过程
│ │ │ └── 文件恢复
│ │ └── 最佳实践
└── 在 Java 中的应用
├── Jedis
│ ├── Jedis 的连接
│ │ ├── 单机连接
│ │ ├── 集群连接
│ │ └── 连接池
│ ├── Jedis 的基本操作
│ │ ├── CRUD 操作
│ │ ├── 事务管理
│ │ └── 监听与发布
│ └── Jedis 的高级功能
│ ├── 管道(Pipeline)
│ ├── 事务(Transactions)
│ └── 发布与订阅
├── Lettuce
│ ├── Lettuce 的连接
│ │ ├── 单机连接
│ │ ├── 集群连接
│ │ └── 连接池
│ ├── Lettuce 的基本操作
│ │ ├── CRUD 操作
│ │ ├── 事务管理
│ │ └── 监听与发布
│ └── Lettuce 的高级功能
│ ├── 管道(Pipeline)
│ ├── 事务(Transactions)
│ └── 发布与订阅
└── Spring Data Redis
├── Spring Data Redis 的配置
│ ├── 配置文件
│ ├── 连接池配置
│ └── 事务管理
├── Spring Data Redis 的基本操作
│ ├── CRUD 操作
│ ├── 事务管理
│ └── 监听与发布
└── Spring Data Redis 的高级功能
├── 管道(Pipeline)
├── 事务(Transactions)
└── 发布与订阅
Redis 的基本命令
通用命令
- CONFIG GET key:获取配置项的值。
- CONFIG SET key value:设置配置项的值。
- INFO [section]:显示服务器的各种信息。
- SHUTDOWN:关闭 Redis 服务器。
数据操作命令
- SET key value:设置键的值。
- GET key:获取键的值。
- DEL key [key …]:删除一个或多个键。
- EXISTS key [key …]:判断一个或多个键是否存在。
- TYPE key:获取键的类型。
- TTL key:获取键的生存时间。
键空间命令
- KEYS pattern:查找所有匹配给定模式的键。
- SCAN cursor [MATCH pattern] [COUNT count]:迭代键空间。
- RANDOMKEY:随机返回数据库中的一个键。
事务命令
- MULTI:标记一个事务块的开始。
- EXEC:执行所有事务块内的命令。
- DISCARD:取消执行事务块内的所有命令。
- WATCH key [key …]:监视一个或多个键。
连接命令
- AUTH password:认证客户端。
- ECHO message:返回给定的消息。
- QUIT:断开客户端连接。
- SELECT index:选择数据库索引。
Redis 的数据类型
String
- SET key value:设置键的值。
- GET key:获取键的值。
- INCR key:递增键的值。
- DECR key:递减键的值。
- INCRBY key increment:递增键的值。
- DECRBY key decrement:递减键的值。
- MSET key value [key value …]:同时设置多个键的值。
- MGET key [key …]:同时获取多个键的值。
- SETEX key seconds value:设置键的值并设置过期时间。
- PSETEX key milliseconds value:设置键的值并设置毫秒级别的过期时间。
- GETSET key value:获取旧值并设置新值。
Hash
- HSET key field value:设置哈希表中键的字段的值。
- HGET key field:获取哈希表中键的字段的值。
- HMSET key field value [field value …]:同时设置多个字段的值。
- HMGET key field [field …]:同时获取多个字段的值。
- HDEL key field [field …]:删除一个或多个字段。
- HEXISTS key field:判断字段是否存在。
- HLEN key:获取哈希表中字段的数量。
- HKEYS key:获取哈希表中所有的字段。
- HVALS key:获取哈希表中所有值。
- HGETALL key:获取哈希表中的所有字段和值。
- HSCAN key cursor [MATCH pattern] [COUNT count]:迭代哈希表中的字段。
List
- LPUSH key value [value …]:在列表前面插入一个或多个值。
- RPUSH key value [value …]:在列表后面插入一个或多个值。
- LPOP key:移除并返回列表的第一个元素。
- RPOP key:移除并返回列表的最后一个元素。
- LINSERT key BEFORE|AFTER pivot value:在列表的指定元素前后插入元素。
- LINDEX key index:获取列表中指定位置的元素。
- LSET key index value:设置列表中指定位置的元素。
- LREM key count value:移除列表中等于给定值的元素。
- LTRIM key start stop:截取列表中指定范围的元素。
- LLEN key:获取列表的长度。
- LRANGE key start stop:获取列表中指定范围的元素。
- BRPOP key [key …] timeout:从列表尾部弹出一个元素,如果列表为空则等待。
Set
- SADD key member [member …]:向集合添加一个或多个成员。
- SMEMBERS key:获取集合中的所有成员。
- SREM key member [member …]:移除集合中的一个或多个成员。
- SISMEMBER key member:判断成员是否在集合中。
- SCARD key:获取集合中的成员数量。
- SINTER key [key …]:获取多个集合的交集。
- SUNION key [key …]:获取多个集合的并集。
- SDIFF key [key …]:获取多个集合的差集。
- SSCAN key cursor [MATCH pattern] [COUNT count]:迭代集合中的成员。
- SRANDMEMBER key [count]:随机返回集合中的一个或多个成员。
Sorted Set
- ZADD key score member [score member …]:向有序集合添加一个或多个成员及其分数。
- ZRANGE key start stop [WITHSCORES]:获取有序集合中指定范围的成员。
- ZREVRANGE key start stop [WITHSCORES]:获取有序集合中指定范围的成员,逆序排列。
- ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]:获取有序集合中指定分数范围的成员。
- ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]:获取有序集合中指定分数范围的成员,逆序排列。
- ZREM key member [member …]:移除有序集合中的一个或多个成员。
- ZREMRangeByRank key start stop:移除有序集合中指定排名范围的成员。
- ZREMRangeByScore key min max:移除有序集合中指定分数范围的成员。
- ZCARD key:获取有序集合中的成员数量。
- ZSCORE key member:获取有序集合中成员的分数。
- ZUNIONSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]:计算多个有序集合的并集,并将结果保存到新的有序集合中。
- ZINTERSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]:计算多个有序集合的交集,并将结果保存到新的有序集合中。
- ZSCAN key cursor [MATCH pattern] [COUNT count]:迭代有序集合中的成员。
通过这些详细的命令,你可以充分利用 Redis 的强大功能来管理和操作数据。接下来的部分将继续介绍 Redis 的持久化机制以及如何在 Java 中使用 Redis。