TypechoJoeTheme

Clover 的博客

统计
登录
用户名
密码
/
注册
用户名
邮箱

CloverYou

日出于东却落于西,相识人海却散于席。
搜索到 56 篇与 JAVA 的结果
2022-01-07

SpringCache

SpringCache
Spring Cache官方文档 https://docs.spring.io/spring-framework/docs/current/reference/html/integration.html#cacheSpring 从3.1开始定义了 org.springframework.cache.Cache 和 org.springframework.cache.CacheManager 接口来统一不同的缓存技术并支持使用 JCache(JSR-107)注解简化我们开发。Cache 接口为缓存的组件规范定义,包含缓存的各种操作集合。Cache 接口下 Spring 提供了各种 xxxCache 的实现,如 RedisCache,EhCacheCache,ConcurrentMapCache 等。每次调用需要缓存功能的方法时,Spring 会检查指定参数的指定目标方法是否已经被调用过,如果有就直接从缓存中获取方法调用后的结果,如果没有就调用方法并缓存结果后返回给用户,下次调用直接从缓存中获取。使用 Spring 缓存抽象时我们需要关注以下两点确定方法需要被缓存以及他们的缓存策略。...
CloverYou
2022-01-07

Spring,JAVA

38 阅读
0 评论
2022年01月07日
38 阅读
0 评论
2022-01-06

缓存数据的一致性

缓存数据的一致性
缓存数据的一致性读所有的数据,首先去缓存中获取,缓存中没有就去读数据库,最后在缓存中放一份。如果该数据在数据库中发生改变,那么缓存里面的数据如何和数据库保持一致?解决这个问题,目前有两个用的非常多的场景:双写模式失效模式双写模式修改数据库的数据后再修改缓存中的数据但又引出了一个问题,那就是当有并发时,线程一将数据库的值改为「一号」然后立刻将这个值保存到缓存,而保存过程中遇到了种种原因,如网络波动,导致了数据延迟抵达缓存服务器,而此时线程二已经将数据库数据改为「二号」然后将数据保存到缓存,线程二网络通畅,很快就抵达缓存服务器先于线程一将数据保存到缓存中,而此时线程一的数据才抵达缓存服务器,将数据「一号」保存到了缓存中(把二号覆盖),这时缓存中保存的就是一个脏数据。这是临时性的脏数据问题,但是在数据稳定、缓存过期后,又能得到最新的正确数据。读到的最新数据有延迟,这就导致了数据的最终一致性问题。失效模式在改完数据库后,将缓存中的数据删除,下一次请求进来从缓存获取数据时发现没有对应数据,他会到数据库中查询并将数据保存在缓存中。失效模式也有数据最终一致性问题,例如有三台服务器同时并发,服务...
CloverYou
2022-01-06

JAVA,其它

77 阅读
1 评论
2022年01月06日
77 阅读
1 评论
2022-01-04

Redis 缓存

Redis 缓存
缓存为了系统性能的提升,一般会将部分数据加入缓存中,加速访问。而 db 承担数据落盘工作。哪些数据适合放入缓存?即时性、数据一致性要求不高的访问量大而且更新频率不高的数据(读多,写少)整合Redis在 SpringBoot 工程中引入 Redis 场景<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>在配置文件中配置 Redis,Redis 的属性配置都在 org.springframework.boot.autoconfigure.data.redis.RedisPropertiesspring: # 配置 redis redis: host: 172.16.34.128使用 StringRedisTemplate 操作 redis@SpringBootTest @Slf4j @Dis...
CloverYou
2022-01-04

其它,JAVA

55 阅读
0 评论
2022年01月04日
55 阅读
0 评论
2022-01-02

Junit5 单元测试 - 学习笔记

Junit5 单元测试 - 学习笔记
在SpringBoot2.2.0+开始引入Junit5 作为单元测试默认库JUnit5 = JUnit Platform + JUnit Jupiter + JUnit VintageJUnit Plaform 是在JVM上启动测试框架的基础,不仅支持Junit自制的测试引擎,其它测试引擎也都可以接入。JUnit Jupiter 提供了JUnit5 的新的编程模型,时JUnit5 新特性的核心。内部包含了一个测试引擎,用于在Junit Platform上运行。JUnit Vintage 为老版本提供了兼容。在创建SpringBoot项目的时候,会自动引入junit 5并帮我们自动配好package com.ctong.learnspringboot; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest class LearnSpringBootApplicationTests { @Test voi...
CloverYou
2022-01-02

其它,JAVA

29 阅读
0 评论
2022年01月02日
29 阅读
0 评论
2022-01-02

MyBatis - 学习笔记

MyBatis - 学习笔记
MyBatis 简介原是Apache的一个开源项目iBatis,2010年6月这个项目由Apache Software Foundation迁移到Google Code,随着开发团队转投Google Code旗下。iBatis3.x正式更名为MyBatis,代码于2013年11月迁移到GithubiBatis一词来源于“internet”和“abatis”的组合。是一个基于Java的持久层框架。iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis是支持定制化SQL、存储过程以及高级映射的优秀持久层框架MyBatis避免了几乎所有的JDBC代码的手动设置参数以及获取结果集MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO映射成数据库中的记录GithubHelloWorldMyBatis Demo Github导包<!-- jdbc包 --> mysql-connector-java-8.0.21.jar <!-- mybatis核心包 --> mybati...
CloverYou
2022-01-02

JAVA,其它

35 阅读
0 评论
2022年01月02日
35 阅读
0 评论
CloverYou
日出于东却落于西,相识人海却散于席。
88 文章数
11 评论量
IP信息

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

最新回复

  1. 缓存一致性 - 点击领取
    2022-01-06
  2. 宝宝
    2022-01-02

标签云