文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

redis缓存数据库中数据的方法

2022-07-28 17:00

关注

本文实例为大家分享了Redis缓存数据库中数据的具体代码,供大家参考,具体内容如下

将数据库的数据保存到redis缓存

当第一次查询时,缓存没有对应的数据,则会查询数据库,并将数据更新到缓存
当缓存中有对应的数据时,则会直接访问缓存,则不查询数据库
这样在性能优化上有很大的帮助

ProvinceServiceImpl

public class ProvinceServiceImpl implements ProvinceService {
  private ProvinceDao dao = new ProvinceDaoImpl();

  @Override
  public List<Province> findAll() {

    return dao.findAll();
  }

  
  @Override
  public String findAlljson(){
    //1.先从redis中查询数据
    //1.1获取客户端连接
    Jedis jedis = JedisUtils.getJedis();
    String province_json = jedis.get("province");

    //2.判断province_json数据是否为null
    if(province_json == null || province_json.length() == 0){
      //redis中没有数据
      System.out.println("redis中没有数据,查询数据库...");
      //2.1从数据库中查询
      List<Province> list = dao.findAll();

      //2.2将list序列化为json
      ObjectMapper mapper = new ObjectMapper();
      try {
        province_json = mapper.writeValueAsString(list);
      } catch (JsonProcessingException e) {
        e.printStackTrace();
      }

      //2.3将json数据存入redis中
      jedis.set("province", province_json);

      //释放资源
      jedis.close();
    }else {
      System.out.println("redis中有数据,查询缓存...");
    }

    return province_json;
  }
}

index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<script src="js/jquery-3.3.1.min.js"></script>

  <script>
    $(function (){
      //发送AJAX请求,加载所有省份数据
      $.get("provinceServlet",{},function (data){
        //[{"id":1,"name":"北京"},{"id":2,"name":"上海"},{"id":3,"name":"广州"},{"id":4,"name":"武汉"}]
        //1.获取select
        var province = $("#province");
        //2.遍历json数组
        $(data).each(function (){
          //3.创建<option>
          var option = "<option name='" + this +"'>" + this.name + "</option>";

          //4.调用select的append方法追加
          province.append(option);
        });

      });
    });
  </script>
<body>

  <select id="province">
    <option>---请选择省份---</option>


  </select>
</body>
</html>

效果展示

第一次查询时

redis缓存数据库中数据的方法

redis缓存数据库中数据的方法

此时可以看到redis没有数据,所以查询了数据库

第二次查询

redis缓存数据库中数据的方法

此时可以看到redis中已经有缓存了,所以没有查询数据库

注意

当数据中的数据进行增删改时,缓存的数据依旧不会改变,所以当进行增删改操作后,应该删除redis中的缓存,然后在重新缓存,从而达到更新缓存的效果。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯