在日常开发中,Redis经常被用于会话缓存、全页缓存、队列、排行榜、发布订阅等场景中。
1. 会话缓存
- 用途:存储
用户会话信息
,如登录状态、权限等。
jedis.setex("session:" + sessionId, 3600, userData); // 设置会话缓存,有效期为1小时
2. 全页缓存
- 用途:缓存
整个页面内容
,减少页面生成时间。
String pageContent = jedis.get("page:" + pageId);
if (pageContent == null) {
// 从数据库或其他来源获取页面内容
jedis.setex("page:" + pageId, 3600, pageContent); // 缓存页面内容,有效期为1小时
}
3. 队列
- 用途:实现任务队列,
异步处理任务
。
jedis.rpush("taskQueue", taskData); // 将任务数据推入队列
String taskData = jedis.lpop("taskQueue"); // 从队列中取出任务数据
4. 排行榜
- 用途:记录用户的
分数排名
等信息。
jedis.zadd("leaderboard", score, userId); // 添加用户分数
Set<String> topUsers = jedis.zrevrange("leaderboard", 0, 9); // 获取前10名用户
5. 发布订阅
- 用途:实现
消息发布和订阅
机制。
// Java代码示例
JedisPubSub subscriber = new JedisPubSub() {
@Override
public void onMessage(String channel, String message) {
System.out.println("message: " + message + " channel: " + channel);
}
};
jedis.subscribe(subscriber, "channelName"); // 订阅频道
jedis.publish("channelName", "Hello, subscribers!"); // 发布消息到频道
以上,通过Redis实现会话缓存、全页缓存、队列、排行榜、发布订阅等功能,从而提高系统性能和扩展性。