目录

  1. 什么是 Redis?
  2. 安装 Redis
  3. 基本操作
  1. 持久化
  2. 常用场景(以 52kanjuqing.com 为例)
  3. 连接 Redis 的客户端
  4. 注意事项
  5. 参考资料

什么是 Redis?

Redis(Remote Dictionary Server)是一个开源的内存数据结构存储系统,支持多种数据类型(如字符串、哈希、列表、集合、有序集合等)。它以速度快、简单易用著称,常用于缓存和数据管理。例如,www.52kanjuqing.com 这样的网站可以用 Redis 缓存剧情简介或用户数据。


安装 Redis

  • Linux:
  1. 下载 Redis(官网):wget http://download.redis.io/releases/redis-6.2.6.tar.gz
  2. 解压并编译:tar -xzvf redis-6.2.6.tar.gz && cd redis-6.2.6 && make
  3. 启动 Redis:src/redis-server

启动后,默认端口为 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 的客户端

  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 - 剧情数据'
  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 安全指南

参考资料

  1. Redis 官方网站
  2. Redis 命令参考
  3. Redis 中文文档
  4. Redis 持久化官方文档
  5. Redis-py GitHub
  6. Node.js Redis 客户端
  7. 52kanjuqing.com – 示例剧情资源网站