服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Redis - redis缓存数据库中数据的方法

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

2022-07-28 17:51兴奋の大公猴 Redis

这篇文章主要为大家详细介绍了redis缓存数据库中数据的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

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

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

ProvinceServiceImpl

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!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中的缓存,然后在重新缓存,从而达到更新缓存的效果。

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

原文链接:https://blog.csdn.net/qq_46274901/article/details/123699904

延伸 · 阅读

精彩推荐
  • Redis基于redis集群设置密码的实例

    基于redis集群设置密码的实例

    今天小编就为大家分享一篇基于redis集群设置密码的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 ...

    带鱼兄4042019-11-14
  • Rediswindows环境下Redis+Spring缓存实例讲解

    windows环境下Redis+Spring缓存实例讲解

    这篇文章主要为大家详细介绍了windows环境下Redis+Spring缓存实例教程,感兴趣的小伙伴们可以参考一下 ...

    Redis教程网4152019-10-29
  • RedisRedis源码解析:集群手动故障转移、从节点迁移详解

    Redis源码解析:集群手动故障转移、从节点迁移详解

    这篇文章主要介绍了Redis源码解析:集群手动故障转移、从节点迁移的相关内容,涉及通过集群定时器函数clusterCron实现从节点迁移等知识,具有一定参考价...

    gqtcgq2552019-11-08
  • RedisRedis去重的3种不同方法汇总

    Redis去重的3种不同方法汇总

    Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库,下面这篇文章主要给大家介绍了关于Redis去重的3种不同方法,需要的朋友可以参考下...

    大数据技术派10212021-11-23
  • Redis分割超大Redis数据库例子

    分割超大Redis数据库例子

    这篇文章主要介绍了分割超大Redis数据库例子,本文讲解了分割的需求、分割的思路及分割实例,需要的朋友可以参考下 ...

    Redis教程网3802019-10-23
  • Redis详解Redis中的双链表结构

    详解Redis中的双链表结构

    这篇文章主要介绍了Redis中的双链表结构,包括listNode结构的API,需要的朋友可以参考下 ...

    zinss269143082019-10-26
  • RedisRedis实现分布式锁的方法示例

    Redis实现分布式锁的方法示例

    本篇文章主要介绍了Redis实现分布式锁的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...

    犀利豆2702019-11-10
  • RedisRedis分布式锁的实现方式(redis面试题)

    Redis分布式锁的实现方式(redis面试题)

    这篇文章主要介绍了Redis分布式锁的实现方式(面试常见),需要的朋友可以参考下 ...

    程序员之道22232020-03-01