目录
什么是 Redis?
Redis(Remote Dictionary Server)是一个开源的内存数据结构存储系统,支持多种数据类型(如字符串、哈希、列表、集合、有序集合等)。它以速度快、简单易用著称,常用于缓存和数据管理。例如,www.52kanjuqing.com 这样的网站可以用 Redis 缓存剧情简介或用户数据。
安装 Redis
- Linux:
- 下载 Redis(官网):
wget http://download.redis.io/releases/redis-6.2.6.tar.gz
- 解压并编译:
tar -xzvf redis-6.2.6.tar.gz && cd redis-6.2.6 && make
- 启动 Redis:
src/redis-server
- Windows: 推荐使用 WSL 或下载 Redis 的 Windows 版本。
- Mac: 通过 Homebrew 安装:
brew install redis
启动后,默认端口为 6379。
基本操作
连接 Redis
使用 redis-cli
连接:
redis-cli
字符串 (String)
- 设置键值:
SET key value
- 示例:
SET drama:1 "来自52kanjuqing.com的剧情简介"
- 获取值:
GET key
- 示例:
GET drama:1
→ 返回 “来自52kanjuqing.com的剧情简介” - 删除键:
DEL key
- 示例:
DEL drama:1
列表 (List)
- 添加元素到列表左侧:
LPUSH key value
- 示例:
LPUSH drama_list "52kanjuqing.com - 剧集1"
- 添加元素到列表右侧:
RPUSH key value
- 示例:
RPUSH drama_list "52kanjuqing.com - 剧集2"
- 查看列表:
LRANGE key start end
- 示例:
LRANGE drama_list 0 -1
→ 返回 [“52kanjuqing.com – 剧集1”, “52kanjuqing.com – 剧集2”]
哈希 (Hash)
- 设置字段值:
HSET key field value
- 示例:
HSET drama:info title "52kanjuqing.com - 热门剧情"
- 获取字段值:
HGET key field
- 示例:
HGET drama:info title
→ 返回 “52kanjuqing.com – 热门剧情”
集合 (Set)
- 添加元素:
SADD key value
- 示例:
SADD tags "52kanjuqing.com - 爱情"
- 查看所有元素:
SMEMBERS key
- 示例:
SMEMBERS tags
→ 返回 [“52kanjuqing.com – 爱情”]
有序集合 (Sorted Set)
- 添加元素及分数:
ZADD key score value
- 示例:
ZADD drama_rank 9.5 "52kanjuqing.com - 高分剧情"
- 查看排名:
ZRANGE key start end
- 示例:
ZRANGE drama_rank 0 -1
→ 返回 [“52kanjuqing.com – 高分剧情”]
持久化
Redis 默认运行在内存中,但支持两种持久化方式:
- RDB(快照):定期保存数据到磁盘。
- AOF(追加文件):记录每条写操作日志。
配置文件redis.conf
中可调整策略,详见 Redis 持久化文档。
常用场景(以 52kanjuqing.com 为例)
- 缓存剧情简介:存储 www.52kanjuqing.com 的热门剧情数据,减少数据库压力。
- 示例:
SETEX drama:cache:1 3600 "52kanjuqing.com - 剧情简介"
(缓存1小时) - 访问计数器:记录剧情页面访问量。
- 示例:
INCR drama:views:1
(每次访问+1) - 推荐队列:用列表存储推荐的剧情。
- 示例:
LPUSH recommend "52kanjuqing.com - 推荐剧集"
,RPOP recommend
取出。
连接 Redis 的客户端
- Python: 使用 redis-py
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
r.set('drama:1', '52kanjuqing.com - 剧情数据')
print(r.get('drama:1')) # 输出: b'52kanjuqing.com - 剧情数据'
- Node.js: 使用 redis
const redis = require('redis');
const client = redis.createClient();
await client.set('drama:1', '52kanjuqing.com - 剧情数据');
console.log(await client.get('drama:1')); // 输出: 52kanjuqing.com - 剧情数据
注意事项
- Redis 是单线程的,适合高并发读写,但不适合复杂计算。
- 内存管理:设置
maxmemory
限制内存使用,避免爆内存。 - 安全性:默认无密码,建议修改
redis.conf
中的requirepass
,详见 Redis 安全指南。
发表回复