redis缓存优化

redis缓存优化


一、问题

在Javaweb项目中,如果每次刷新,所有资源都重新从数据库中读取,这样每次效率会很低,在这里可以使用redis非关系型数据库,将一些不经常变化得资源加载进内存中。提高效率。

二、解决办法


在准备查询数据得时候先别从关系型数据库(例如mysql)中查寻,先从redis中查询有没有自己需要得数据,

三、具体操作


public String findAllJson() {
        //1.从redis中查询数据
        Jedis jedis = JedisPoolUtils.getJedis();
        String province_json = jedis.get("province");
        //判断province_json的数据是否为null,如果是,从数据库加载到redis,不是,直接用redis
        if (province_json == null || province_json.length()==0){
            //从数据库中查找
            List<Province> ps = dao.findAll();
            //将list序列化为json,并存入redis中
            ObjectMapper mapper = new ObjectMapper();
            try {
                province_json = mapper.writeValueAsString(ps);
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
            //3.将json数据存入redis中
            jedis.set("province",province_json);
            jedis.close();
        }
        return province_json;
    }

四、注意


  1. 通常使用redis存储一些不经常变化的数据。
  2. 在执行增删改操作的时候,需要先将redis中对应的数据删除,再从数据库中更新数据
原文地址:https://www.cnblogs.com/Alitac/p/12293130.html