温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

redis如何缓存数据库中数据

发布时间:2022-07-29 09:39:48 来源:亿速云 阅读:298 作者:iii 栏目:开发技术

这篇“redis如何缓存数据库中数据”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“redis如何缓存数据库中数据”文章吧。

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

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

ProvinceServiceImpl

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

    @Override
    public List<Province> findAll() {

        return dao.findAll();
    }

    /**
     * 使用redis缓存
     * @return
     */
    @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中的缓存,然后在重新缓存,从而达到更新缓存的效果。

以上就是关于“redis如何缓存数据库中数据”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI