案例1:Redis当作缓存,mysql查询案例
package com.shujia.jinjie;
import redis.clients.jedis.Jedis;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner;
/*
Redis当作缓存,mysql查询案例
*/
public class AnliDemo2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入您要查询的商品名称:");
String goodsName = sc.nextLine();
//先去redis中查询,如果redis中有该数据,就直接返回
//若redis中没有查询到该数据,就去mysql中查询,返回查询的结果,同时向redis中写一个该数据并设置过期时间
String info = selectGoods(goodsName);
System.out.println("查询结果为:");
System.out.println(info);
}
public static String selectGoods(String name) {
System.out.println(name);
Jedis redisConn = RedisTool.REDIS_CONN;
String res = redisConn.get(name);
String info = null;
try {
if (res != null) {
System.out.println("=====================走redis查询=====================");
info = res;
}else {
System.out.println("=====================走mysql业务数据库查询=====================");
//redis中没有该缓存,去业务数据库中查询
Connection conn = MySqlTool.getConnection();
PreparedStatement prep = conn.prepareStatement("select * from jd_goods where goods_name=?");
prep.setString(1, name);
ResultSet resultSet = prep.executeQuery();
while (resultSet.next()){
String goods_name = resultSet.getString(1);
String price = resultSet.getString(2);
String comments = resultSet.getString(3);
String shop = resultSet.getString(4);
String icos = resultSet.getString(5);
info = goods_name+"|"+price+"|"+comments+"|"+shop+"|"+icos;
//同时向redis中添加一个缓存
redisConn.set(name, info);
redisConn.expire(name,86400);
}
}
}catch (Exception e){
e.printStackTrace();
}
return info;
}
}
分类:
redis
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?