Redis小记

57 阅读2分钟

1. Redis 简介

Redis(Remote Dictionary Server)是一种基于内存的 NoSQL 数据库,支持键值对(Key-Value)存储。它具有高性能、持久化、多数据结构支持和分布式特性,广泛用于缓存、消息队列、排行榜、会话管理等场景。


2. Redis 的核心特性

  1. 高性能:由于 Redis 主要在内存中操作数据,相比传统关系型数据库(如 MySQL),读写性能更快,支持每秒百万级 QPS(Queries Per Second)。

  2. 丰富的数据结构:Redis 提供五大基础数据结构:

    • String(字符串):常用于缓存数据、计数器、自增 ID。
    • List(列表):可用作队列或消息队列。
    • Hash(哈希):存储对象信息,如用户信息。
    • Set(集合):去重、标签管理。
    • Sorted Set(有序集合):排行榜、计分系统。
  3. 持久化支持:Redis 支持 RDB(快照)和 AOF(日志)两种持久化方式,以保证数据在重启后不会丢失。

  4. 高可用与集群:Redis 通过主从复制(Replication)、Sentinel(哨兵)、Cluster(集群)提供高可用性,保证系统稳定性。


3. Redis 的应用场景

  1. 缓存:将数据库查询结果存入 Redis,减少数据库压力,加速访问速度。
  2. 分布式锁:基于 SETNX 实现分布式锁,防止并发问题。
  3. 消息队列:利用 List 实现生产者-消费者模型,如秒杀系统、任务队列。
  4. 限流:使用 INCREXPIRE 实现限流算法,防止流量攻击。
  5. Session 共享:在分布式环境中,Redis 可存储用户会话信息,实现多实例共享。

4. Redis 的优化策略

  1. 合理设置过期时间(TTL) ,避免数据长期占用内存。
  2. 使用内存淘汰策略,如 LRU(最近最少使用)、LFU(最不常用)清理无用数据。
  3. 避免大键(Big Key) ,可拆分存储,防止阻塞 Redis 线程。
  4. 使用 Pipeline 进行批量操作,减少网络交互,提高吞吐量。

5. 总结

Redis 作为高性能的缓存数据库,在大规模并发场景中发挥重要作用。合理使用 Redis,可以极大提升系统性能、降低数据库压力,并确保数据的高可用性。