Redis指南:77k星开源内存数据库缓存消息队列标杆

项目:redis/redis | 星数:77131 | 语言:C | 协议:开源协议 | GitHub仓库

简介

Redis是开源内存数据结构存储系统,以极高性能(单机10万+ QPS)和丰富数据类型著称。支持字符串、哈希、列表、集合、有序集合、流、地理位置等数据结构,广泛用于缓存、消息队列、会话管理、实时排行榜、发布订阅等场景,是现代Web应用架构中不可或缺的基础设施组件。

核心功能

优缺点

优点缺点
  • 极高性能亚毫秒延迟
  • 数据结构丰富覆盖全场景
  • 持久化+高可用方案成熟
  • 生态庞大文档完善
  • 纯内存成本高(vs磁盘数据库)
  • 大数据集受RAM容量限制
  • 2024年改RSALv2/SSPLv1双协议(非传统OSI开源)

适用场景

常见问题

Redis的许可证是什么?还能免费用吗?

2024年Redis从BSD改为RSALv2+SSPLv1双协议。RSALv2禁止"将Redis作为服务提供给他人"但内部使用完全免费。云厂商(AWS/阿里云)不能再直接提供托管Redis(改用Valkey fork)。自托管企业内部使用不受影响,免费。若需传统开源协议可用Valkey(Linux基金会维护的BSD fork)。

Redis和Memcached比?

Memcached更简单(纯KV缓存),多线程性能略高。Redis优势:①数据结构丰富(List/Set/ZSet/Hash等)②持久化(Memcached重启数据丢失)③主从复制+Cluster④发布订阅。除非只需最简单的KV缓存且追求极致多线程性能,否则Redis更全面。

内存不够怎么办?

①设置maxmemory+淘汰策略(LRU/LFU/random)②Redis 7支持磁盘存储tiering③大Value拆分或用Hash压缩④冷数据迁到磁盘数据库只留热数据在Redis⑤用Redis Cluster分片分散到多机。监控`used_memory`和` fragmentation_ratio`及时扩容。