4. Redis
什么是 Redis?
Redis(Remote Dictionary Server)是一个高性能的键值存储数据库,支持多种数据结构,适用于缓存、消息队列、排行榜等场景。
info
Redis 以其高吞吐量、低延迟的特性广泛用于分布式系统。
Redis 数据结构
Redis 主要支持以下数据结构:
数据结构 | 说明 | 示例应用 |
---|---|---|
String | 字符串类型,适用于缓存单个值 | 计数器、会话存储 |
Hash | 哈希表,适用于存储对象 | 用户信息 |
List | 列表,支持先进先出(FIFO)队列 | 消息队列 |
Set | 集合,不允许重复元素 | 标签存储 |
Sorted Set | 有序集合,支持排序操作 | 排行榜 |
基本操作示例
- Redis CLI
- Python
# 连接 Redis 服务器
redis-cli
# 设置和获取键值
SET user:1 "Alice"
GET user:1
# 删除键
DEL user:1
# 计数器示例
INCR counter
DECR counter
import redis
client = redis.Redis(host='localhost', port=6379, decode_responses=True)
# 设置和获取值
client.set("user:1", "Alice")
print(client.get("user:1"))
# 删除键
client.delete("user:1")
# 计数器示例
client.incr("counter")
client.decr("counter")
Hash 操作示例
# 设置用户信息
HSET user:100 name "Alice" age 30
HGETALL user:100
# Python 操作 Hash
client.hset("user:100", mapping={"name": "Alice", "age": 30})
print(client.hgetall("user:100"))
List 操作示例
# 作为消息队列使用
LPUSH messages "Hello"
RPUSH messages "World"
LPOP messages
RPOP messages
# Python 操作列表
client.lpush("messages", "Hello")
client.rpush("messages", "World")
print(client.lpop("messages"))
print(client.rpop("messages"))
事务管理
使用事务保证操作的原子性
MULTI
INCR counter
INCR counter
EXEC
with client.pipeline() as pipe:
pipe.multi()
pipe.incr("counter")
pipe.incr("counter")
pipe.execute()
结论
Redis 是一个高效的 NoSQL 数据库,适用于多种应用场景,如缓存、队列和排行榜。通过合理使用 Redis,可以提高应用的性能和响应速度。