今天在学习JavaWeb技术时遇到了要将数据库中的数据放入网页的导航栏中,因为网页较多,所有每当访问一个不同的网页时都要对数据库直接取数据操作,这时就会浪费很多时间和资源,这时我就需要Redis来帮助我减少对数据库的访问次数
具体实现如下:
//在这里定义了一个方法findAllCats是用来查找数据库中的数据
public String findAllCats(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
try {
//调用的Jedis这一工具类进行对Redis的连接
Jedis jedis = JedisUtils.getJedis();
//查询现在的Redis缓存中是否有我们需要的数据
String jsonStr = jedis.get("allCats");
//如果没有的话就说明我们是第一次进入,需要先去访问数据库一次
if(null==jsonStr || "".equals(jsonStr)){
CategoryService categoryservice = new CategoryServiceImpl();
//这是我定义的用来访问数据库查找数据的方法
List<Category> list = categoryservice.getAllCats();
//然后将返回的List集合转化成String字符串
jsonStr = JSONArray.fromObject(list).toString();
//然后将该字符串存入缓存中
jedis.set("allCats",jsonStr);
//告诉服务器这是一个Json格式的字符串;以Json格式处理
resp.setContentType("application/json;charset=utf-8