Redis 高级教程学习笔记
1. Redis 数据结构
1.1 字符串 (String)
字符串是 Redis 最基本的数据结构之一,它可以存储任何类型的数据,包括文本、数字等。
1.1.1 字符串的操作
- 设置字符串值:
set key value
- 获取字符串值:
get key
- 追加字符串值:
append key value
- 获取字符串长度:
strlen key
1.2 列表 (List)
列表是一种有序的数据结构,它可以存储多个字符串值。
1.2.1 列表的操作
- 将一个或多个值插入到列表头部:
lpush key value [value ...]
- 将一个或多个值插入到列表尾部:
rpush key value [value ...]
- 获取列表指定范围内的元素:
lrange key start stop
- 获取列表长度:
llen key
1.3 哈希表 (Hash)
哈希表是一种映射表,它可以将多个键值对映射到同一个哈希表中。
1.3.1 哈希表的操作
- 向哈希表中添加一个字段:
hset key field value
- 获取哈希表中指定字段的值:
hget key field
- 获取哈希表中所有字段和值的列表:
hgetall key
1.4 集合 (Set)
集合是一种无序的数据结构,它可以存储多个字符串值,并保证每个值的唯一性。
1.4.1 集合的操作
- 向集合中添加一个或多个成员:
sadd key member [member ...]
- 获取集合中的所有成员:
smembers key
- 获取集合中成员的数量:
scard key
1.5 有序集合 (Sorted Set)
有序集合是一种有序的数据结构,它可以存储多个字符串值,并根据每个字符串的分值进行排序。
1.5.1 有序集合的操作
- 向有序集合中添加一个成员:
zadd key score member
- 获取有序集合中指定范围内的成员:
zrange key start stop
- 获取有序集合中成员的数量:
zcard key
2. Redis 持久化
Redis 支持两种持久化方式:RDB 和 AOF。
2.1 RDB 持久化
RDB 持久化会根据一定的时间间隔将 Redis 的数据集快照存储到磁盘上。
2.1.1 RDB 持久化的配置
在 Redis 配置文件中,可以通过以下配置项来配置 RDB 持久化:
Copy Codesave 900 1
save 300 10
save 60 10000
2.2 AOF 持久化
AOF 持久化会将写入 Redis 数据集的所有命令追加到一个文件中。
2.2.1 AOF 持久化的配置
在 Redis 配置文件中,可以通过以下配置项来配置 AOF 持久化:
Copy Codeappendonly yes
appendfsync always
3. Redis 事务
Redis 支持事务操作,事务可以将多个命令打包在一起,并以原子性的方式执行。
3.1 事务操作
Redis 的事务操作包括以下几个步骤:
- 开始事务:
multi
- 执行多个命令:
set key1 value1
,set key2 value2
,... - 提交事务:
exec
3.2 事务的回滚
如果在执行事务期间发生错误,可以通过以下命令回滚事务:
Copy Codediscard
实例
下面是一个使用 Redis 存储文章的实例:
Copy Code# 将文章存储到 Redis 中
multi
hmset article:1 title "Redis 教程" content "Redis 是一个高性能的键值对数据库" author "张三"
rpush articles 1
exec
# 获取文章列表
lrange articles 0 -1
# 获取文章详情
hgetall article:1