什么是 Redis?
Redis(Remote Dictionary Server)是一个开源的基于内存的数据结构存储系统,可以用作数据库、缓存和消息中间件。它支持多种数据结构,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set,又称 zset)、位图、HyperLogLog、地理空间(Geospatial)等。
为什么使用 Redis?
- 高性能:数据存储在内存中,读写速度极快,支持高并发。
- 多数据结构支持:丰富多样的数据类型适合不同应用场景。
- 持久化:数据可以持久保存到磁盘,避免数据丢失。
- 分布式支持:支持主从复制、哨兵和集群,易于扩展。
- 丰富的应用场景:可用作缓存、排行榜、计数器、会话存储、实时统计等。
Redis 的基本数据类型
| 数据类型 |
说明 |
典型场景 |
| String(字符串) |
最基本的数据类型 |
缓存、计数器 |
| Hash(哈希) |
键值对集合 |
用户信息存储 |
| List(列表) |
有序链表,可以两端操作 |
消息队列 |
| Set(集合) |
不重复元素的集合 |
唯一性判断、标签 |
| Sorted Set(有序集合) |
带分数的有序集合 |
排行榜、优先级任务队列 |
Redis 常用命令
SET key value:设置 key 的值
GET key:获取 key 的值
HSET key field value:在哈希 key 中设置指定字段的值
LPUSH key value:将 value 插入到列表的左侧
SADD key member:向集合添加一个成员
ZADD key score member:向有序集合添加元素及其分数
Redis 安装与启动
1. 安装 Redis(以 Linux 为例):
sudo apt update
sudo apt install redis-server
2. 启动 Redis 服务:
redis-server
默认监听 6379 端口。
3. 连接 Redis 客户端:
redis-cli
Redis 基本用法示例
# 设置键值
SET name "redis"
GET name
# 操作列表
LPUSH fruits apple
LPUSH fruits banana
LRANGE fruits 0 -1
# 哈希示例
HSET user:1 name "Tom" age 18
HGETALL user:1
应用场景举例
- 缓存:数据库查询结果、热点数据缓存。
- 排行榜:基于 zset 实现按分数排序。
- 消息队列:基于 list 实现简单的队列。
- 分布式锁:基于 setnx/set 实现。
注意事项
- Redis 以内存为主,数据量大时需注意内存容量。
- 持久化方式有 RDB(快照)和 AOF(追加日志),可结合使用。
- 所有键和值的数据结构受最大内存大小限制。
- 虽然支持持久化,但不完全等同于传统关系型数据库。
参考资料