mybatis二级缓存和redis区别_Redis——(二)

Redis——(二)

07fbad0ca3a84591ee348948a05ec878.png


java操作redis

环境准备

1、创建SpringBoot项目

2、引入依赖

  <dependency>     <groupId>redis.clientsgroupId>     <artifactId>jedisartifactId>     <version>3.1.0version> dependency>

3、创建jedis对象

 //1.创建Jedis对象
 Jedis jedis = new Jedis("39.99.218.169",7000);
 //2.执行相关操作
 //3.释放资源
 jedis.close();

七、SpringBoot整合Redis

 SpringBoot DataRedis中提供了RedisTemplate和StringRedisTemplate,其中StringRedisTemplate是RedisTemplate的子类,两个方法基本一致,不同之处主要体现在操作的数据类型不同,RedisTemplate中的两个泛型都是Object,意味着存储的key和value都可以是一个对象,而StringRedisTemplate的两个泛型都是String,意味着StringRedisTemplate的key和value都只能是字符串。

注意:使用RedisTemplate默认是将对象序列化到Redis中,所以放入的对象必须实现对象序列化接口

7.1、环境准备

1.       引入依赖

 org.springframework.bootspring-boot-starter-data-redis2.3.1.RELEASE

2.       配置application.properties

 spring.redis.host=39.99.218.169
 spring.redis.port=7000
 spring.redis.database=0

7.2、使用StringRedisTemplate和RedisTemplate

八、Redis应用场景

1.利用 redis 中字符串类型完成项目中手机验证码存储的实现

2.利用 redis 中字符串类型完成具有失效性业务功能

3.利用 redis 分布式集群系统中 Session共享 memcache 内存数据存储上限数据类型比较简单 redis 内存

4.利用 redis zset类型的可排序实现排行榜

5.利用 redis 分布式缓存

6.利用 redis 存储认证之后token信息超时失效

7.利用 redis 解决分布式集群系统中分布式锁问题 jvm synchronize

九、Redis 中分布式缓存实现

1.什么是缓存

计算机内存中一段数据

2.内存中数据特点

1.读写快

2.断点立即丢失

3.缓存解决了什么问题

1.提高了网站吞吐量,提高网站运行效率

2.核心解决问题:缓存的存在是用来减轻数据库的访问压力

4.使用缓存时一定是数据库极少发生修改,更多用于查询这种情况,所以不是所有数据都加入缓存更好,比如城市坐标等固定数据就可以加缓存。

5.本地缓存和分布式缓存区别

1.本地缓存:存在应用服务器内存中数据称之为本地缓存(Local cache)

2.分布式缓存:存储在当前应用服务器内存之外数据称之为分布式缓存(distributecache)

3.集群:将同一种服务的多个节点放在一起共同对系统提供服务过程称之为集群

4.分布式:有多个不同服务集群功能对系统提供服务这个系统称之为分布式系统(distributesystem)

6.利用mybatis自身本地缓存结合redis 实现分布式缓存

1.中应用级缓存(二级缓存) 也就是SqlSessionFactory级别缓存所有会话共享

2.二级缓存要手动开启

1.本地缓存

3.自定义Rediscache实现

1.自定义Cache类implements Cache接口,并对Cache接口的方法进行实现

2.使用RedisCache实现

本地缓存代码

导入依赖

   <dependency>            <groupId>mysqlgroupId>            <artifactId>mysql-connector-javaartifactId>         dependency>          <dependency>            <groupId>com.alibabagroupId>            <artifactId>druidartifactId>            <version>1.1.22version>         dependency>         <dependency>            <groupId>org.mybatis.spring.bootgroupId>             <artifactId>mybatis-spring-boot-starterartifactId>            <version>2.1.3version>         dependency>

写入配置

 server.port=8989
 #redis
 spring.redis.host=39.99.218.169
 spring.redis.port=7000
 spring.redis.database=0
 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
 spring.datasource.driver-class-name=com.mysql.jdbc.Driver
 spring.datasource.url=jdbc:mysql://localhost:3306/2001?characterEndoding=UTF-8
 spring.datasource.username=root
 spring.datasource.password=123456
 mybatis.mapper-locations=classpath:com/baro/mapper/*.xml
 mybatis.type-aliases-package=com.baro.entity
 logging.level.com.baro.dao=debug

入口类

 @SpringBootApplication @MapperScan("com.baro.dao") public class RedisBootApplication {   public static void main(String[] args) {  SpringApplication.run(RedisBootApplication.class, args);  }  }

实体类

 @Data @Accessors(chain = true)//lombok public class User implements Serializable {     private String id;     private String name;     private Integer age;     private Date bir; }

查询配置

resources/com/baro/mapper/UerDAOMapper.xml  /span>        PUBLIC"-//mybatis.org//DTD Mapper 3.0//EN"       "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.baro.dao.BookDAO">    <cache/>    <selectid="findAll" resultType="Book">        select id,name,permissionfrom book    select> mapper>

测试类

@SpringBootTest(classes = RedisBootApplication.class)public class testUserService {     @Autowired    private BookService bookService;     @Test    public void test() {       bookService.findAll().forEach(user ->System.out.println("u:" + user));    }}

分布式缓存代码

导入依赖

 <dependency>           <groupId>mysqlgroupId>           <artifactId>mysql-connector-javaartifactId>        dependency>         <dependency>           <groupId>com.alibabagroupId>           <artifactId>druidartifactId>           <version>1.1.22version>        dependency>        <dependency>           <groupId>org.mybatis.spring.bootgroupId>           <artifactId>mybatis-spring-boot-starterartifactId>           <version>2.1.3version>        dependency>

写入配置

server.port=8989 #redisspring.redis.host=39.99.218.169spring.redis.port=7000spring.redis.database=0 spring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/2001?characterEndoding=UTF-8spring.datasource.username=rootspring.datasource.password=123456 mybatis.mapper-locations=classpath:com/baro/mapper/*.xmlmybatis.type-aliases-package=com.baro.entity logging.level.com.baro.dao=debug

入口类

@SpringBootApplication@MapperScan("com.baro.dao")public class RedisBootApplication {                  public static voidmain(String[] args) {                 SpringApplication.run(RedisBootApplication.class,args);                 } }

实体类

@Data@Accessors(chain = true)//lombokpublic class User implements Serializable {    private String id;    private String name;    private Integer age;    private Date bir;}

查询配置

resources/com/baro/mapper/UerDAOMapper.xml  /span>        PUBLIC"-//mybatis.org//DTD Mapper 3.0//EN"       "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.baro.dao.BookDAO">     <cache/>    <selectid="findAll" resultType="Book">        select id,name,permissionfrom book    select> mapper>
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值