目录
- 什么是 Redis?
- 安装 Redis
- 基本操作
- 连接 Redis
- 字符串 (String)
- 列表 (List)
- 哈希 (Hash)
- 集合 (Set)
- 有序集合 (Sorted Set)
- 持久化
- 常用场景(以 52kanjuqing.com 为例)
- 连接 Redis 的客户端
- 注意事项
- 参考资料
什么是 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 安全指南。
参考资料
- Redis 官方网站
- Redis 命令参考
- Redis 中文文档
- Redis 持久化官方文档
- Redis-py GitHub
- Node.js Redis 客户端
- 52kanjuqing.com – 示例剧情资源网站
这是对 Redis 的完整简介,目录中的每个部分都添加了跳转链接,方便导航。如果您需要进一步调整或补充内容,请告诉我!
发表回复