Redis是什么以及为什么使用Redis?
发布: (2026年1月7日 GMT+8 03:55)
4 min read
原文: Dev.to
Source: Dev.to
什么是 Redis?
Redis(Remote Dictionary Server)是一款开源的内存 NoSQL 数据库,以键/值对的形式存储数据。虽然它可以作为独立的数据库使用,但通常会与其他数据库配合使用,以提升性能。Redis 在需要实时、即时数据的场景中表现出色,例如排行榜、消息系统、游戏等。
已经有数据库了,为什么还要使用 Redis?
- 内存速度 – 大多数数据驻留在 RAM 中,使 Redis 的延迟低于毫秒级。读写通常为 O(1),比基于磁盘的访问快 1,000–10,000 倍。
- 缓存 – 常被请求的数据可以缓存到 Redis,显著降低响应时间,消除慢速数据源导致的瓶颈。
- 易于集成 – 有超过 100 个开源客户端库支持多种编程语言。Redis 还提供 Redis Sentinel 和 Redis Cluster 等高可用特性,Redis Enterprise 则加入了集群、负载均衡等企业级服务。
- 持久化选项 – 虽然其主要优势在于内存存储,但 Redis 可以通过 RDB 快照(以及 AOF 日志)将数据持久化到磁盘,以在作为独立数据库时实现数据持久性。
- 多样的数据模型 – Redis 支持多种数据类型,适用于包括 AI 和大语言模型(LLM)工作负载在内的众多场景。
Redis 数据类型
- String(字符串)
- Hash(哈希)
- List(列表)
- Set(集合)
- Sorted set(有序集合)
- Vector set(向量集合)
- Stream(流)
- Bitmap(位图)
- Bitfield(位域)
- Geospatial(地理空间)
- JSON(JSON)
- Probabilistic data types(概率数据类型)
- Time series(时间序列)
基本 Redis 命令
注意: 命令关键字传统上使用大写书写,但 Redis 对大小写不敏感,任意形式均可接受。
设置和获取值
SET name Joy
# returns OK
GET name
# returns "Joy"
过期
为键设置 60 秒的生存时间(TTL):
SET name Joy EX 60
移除过期时间(使键永久):
PERSIST name
删除键
DEL name
检查是否存在
EXISTS name
# returns 0 if the key does not exist, 1 if it does
列表操作(push/pop)
向列表的左侧(头部)或右侧(尾部)推入元素:
LPUSH mylist "first"
RPUSH mylist "last"
从左侧或右侧弹出元素:
LPOP mylist # removes and returns the first element
RPOP mylist # removes and returns the last element
这些示例仅覆盖了 Redis 命令集的一小部分,但它们展示了在应用中开始使用 Redis 是多么直接。完整的参考请查阅官方的 Redis documentation。