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 Code
save 900 1 save 300 10 save 60 10000

2.2 AOF 持久化

AOF 持久化会将写入 Redis 数据集的所有命令追加到一个文件中。

2.2.1 AOF 持久化的配置

在 Redis 配置文件中,可以通过以下配置项来配置 AOF 持久化:

Copy Code
appendonly yes appendfsync always

3. Redis 事务

Redis 支持事务操作,事务可以将多个命令打包在一起,并以原子性的方式执行。

3.1 事务操作

Redis 的事务操作包括以下几个步骤:

  1. 开始事务:multi
  2. 执行多个命令:set key1 value1set key2 value2,...
  3. 提交事务:exec

3.2 事务的回滚

如果在执行事务期间发生错误,可以通过以下命令回滚事务:

Copy Code
discard

实例

下面是一个使用 Redis 存储文章的实例:

Copy Code
# 将文章存储到 Redis 中 multi hmset article:1 title "Redis 教程" content "Redis 是一个高性能的键值对数据库" author "张三" rpush articles 1 exec # 获取文章列表 lrange articles 0 -1 # 获取文章详情 hgetall article:1