Skip to content

Redis 学习笔记

更新: 7/22/2025 字数: 0 字 时长: 0 分钟

1. Redis 简介

Redis(Remote Dictionary Server)是一个开源的、使用 C 语言编写的、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。

1.1. 特点

  • 速度快:数据存储在内存中,读写速度非常快。
  • 持久化:支持 RDB 和 AOF 两种持久化方式,保证数据在服务重启后不丢失。
  • 丰富的数据类型:支持 String、Hash、List、Set、Sorted Set 等多种数据类型。
  • 原子性操作:所有操作都是原子性的,支持事务。
  • 发布/订阅:支持发布/订阅模式,可以用于消息队列。
  • 高可用:支持主从复制和哨兵(Sentinel)机制,实现高可用。

2. 数据类型

2.1. String(字符串)

  • 介绍:最基本的数据类型,可以存储字符串、整数或浮点数。
  • 常用命令
    • SET key value:设置指定 key 的值。
    • GET key:获取指定 key 的值。
    • INCR key:将 key 中储存的数字值增一。
    • DECR key:将 key 中储存的数字值减一。

2.2. Hash(哈希)

  • 介绍:一个 string 类型的 field 和 value 的映射表,特别适合用于存储对象。
  • 常用命令
    • HSET key field value:将哈希表 key 中的字段 field 的值设为 value。
    • HGET key field:获取存储在哈希表中指定字段的值。
    • HGETALL key:获取在哈希表中指定 key 的所有字段和值。

2.3. List(列表)

  • 介绍:简单的字符串列表,按照插入顺序排序。可以添加一个元素到列表的头部(左边)或者尾部(右边)。
  • 常用命令
    • LPUSH key value1 [value2]:将一个或多个值插入到列表头部。
    • RPUSH key value1 [value2]:将一个或多个值插入到列表尾部。
    • LPOP key:移出并获取列表的第一个元素。
    • RPOP key:移出并获取列表的最后一个元素。
    • LRANGE key start stop:获取列表指定范围内的元素。

2.4. Set(集合)

  • 介绍:String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
  • 常用命令
    • SADD key member1 [member2]:向集合添加一个或多个成员。
    • SMEMBERS key:返回集合中的所有成员。
    • SISMEMBER key member:判断 member 元素是否是集合 key 的成员。

2.5. Sorted Set(有序集合)

  • 介绍:和 Set 一样也是 string 类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。
  • 常用命令
    • ZADD key score1 member1 [score2 member2]:向有序集合添加一个或多个成员,或者更新已存在成员的分数。
    • ZRANGE key start stop [WITHSCORES]:通过索引区间返回有序集合成指定区间内的成员。
    • ZREVRANGE key start stop [WITHSCORES]:返回有序集中指定区间内的成员,通过索引,分数从高到低。

3. 持久化

3.1. RDB (Redis Database)

  • 介绍:在指定的时间间隔内生成数据集的时间点快照。
  • 优点
    • 适合用于备份。
    • 恢复速度快。
  • 缺点
    • 如果服务器宕机,会丢失最后一次快照之后的数据。

3.2. AOF (Append Only File)

  • 介绍:以日志的形式记录服务器所处理的每一个写操作。
  • 优点
    • 数据更完整,丢失数据的风险更小。
  • 缺点
    • 文件体积更大。
    • 恢复速度比 RDB 慢。

贡献者

The avatar of contributor named as LI SIR LI SIR

页面历史