八、springboot整合redis

整合Redis

一. 注解方式实现添加缓存

  1.在pom.xml加入依赖

<!-- 配置使用redis启动器 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-redis</artifactId>
</dependency>

  2. 修改引导类

修改开启缓存,添加注解@EnableCaching

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;

@SpringBootApplication
@EnableCaching
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

  3. 设置实现序列化接口

要缓存到redis中的实体,需要让实体实现序列化接口

public class User implements Serializable {
    private Long id;
    private String userName;
    private String password;
    private String name;

。。。。。。
}

  4. 实现添加/删除缓存

修改UserServiceImpl,

添加@Cacheable注解实现缓存添加

添加@CacheEvict注解实现缓存删除

@Override
@CacheEvict(value = "userCache", key = "‘user.queryAll‘")
public List<User> queryUserByName(String name) {
    System.out.println("缓存清理了!");
    List<User> list = this.userMapper.queryUserByName(name);
    return list;
}

// 调用使用UserMapper.xml的Mapper
@Override
@Cacheable(value = "userCache", key = "‘user.queryAll‘")
public List<User> queryAll() {
    System.out.println("从MySQL中查询");
    List<User> list = this.userMapper.queryAll();
    return list;
}

这样设置完成后,执行queryAll()方法就会使用缓存,如果缓存没有就添加缓存,而queryUserByName(String name)方法则是删除缓存

@Cacheable:添加/使用缓存

@CacheEvict:删除缓存

参数value是缓存的名字,在执行的时候,会找叫这个名字的缓存使用/删除

参数key默认情况下是空串””,是Spring的一种表达式语言SpEL,我们这里可以随意指定,但是需要注意一定要加单引号

二. redis的深入使用

  1. 直接操作redis

redis除了作为缓存使用,还有很多其他的作用,例如利用redis的单线程获取唯一数,例如使用redis为单点登录系统存储用户登录信息等,我们就需要直接操作redis。

官网提供了三种接口RedisConnectionFactory, StringRedisTemplate 和 RedisTemplate,我们可以直接注入或者自己实现其他的实现类,来直接操作redis。我们这里使用RedisTemplate来操作Redis。

如下所示,我们只需要直接注入RedisTemplate即可使用以下方法操作redis的五种不同的数据类型

测试:

@Autowired
private RedisTemplate<String, String> redisTemplate;

@Override
@CacheEvict(value = "userCache", key = "‘user.findAll‘")
public List<User> queryUserByName(String name) {
    // 保存数据
    this.redisTemplate.boundValueOps("redis").set("Hello redis !");
    // 设置有效时间为100秒
    this.redisTemplate.boundValueOps("redis").expire(100l, TimeUnit.SECONDS);
    // 给value每次执行加一操作
    this.redisTemplate.boundValueOps("count").increment(1l);

    System.out.println("缓存清理了!");
    List<User> list = this.userMapper.queryUserByName(name);
    return list;
}

  2. 设置redis连接属性

  redis单机版

redis启动器默认情况下会找本地的redis服务,端口号默认是6379如果需要访问其他服务器的redis,则需要在application.properties中进行如下配置:

#Redis
spring.redis.host=192.168.37.161
spring.redis.port=6379

这表示会去找ip为192.168.37.161和端口为6379的服务

  redis集群版

#Redis
#spring.redis.host=192.168.37.161
#spring.redis.port=6379

#Redis Cluster
spring.redis.cluster.nodes=192.168.37.161:7001,192.168.37.161:7002,192.168.37.161:7003,192.168.37.161:7004,192.168.37.161:7005,192.168.37.161:7006

切换到集群版只需要做以上配置,配置集群版节点信息,注释掉单机版信息

原文地址:https://www.cnblogs.com/soul-wonder/p/9000118.html

时间: 2024-10-07 22:24:51

八、springboot整合redis的相关文章

九、springboot整合redis二之缓冲配置

1.创建Cache配置类 @Configuration @EnableCaching public class RedisCacheConfig extends CachingConfigurerSupport { @Value("${redis.cache.expiration}") private Long expiration; /** * * 管理缓存 */ @Bean public CacheManager cacheManager(RedisTemplate<Obje

SpringBoot 整合 Redis缓存

在我们的日常项目开发过程中缓存是无处不在的,因为它可以极大的提高系统的访问速度,关于缓存的框架也种类繁多,今天主要介绍的是使用现在非常流行的NoSQL数据库(Redis)来实现我们的缓存需求. SpringBoot整合Redis是非常方便快捷的,我用的是Mybatis,这里就不说Springboot整合Mybatis了网上有很多,同样非常简单. 下面进入正题: 原文地址:https://www.cnblogs.com/yueguanguanyun/p/9756058.html

三:Springboot整合Redis

一:springboot整合redis redis版本:3.0.0 运行环境:linux 1.安装redis 1.1安装gcc yum install gcc-c++ 1.2解压redis.3.0.0.tar.gz压缩包 tar -zxvf redis-3.0.0.tar.gz 1.3进入解压后的目录进行编译 cd redis-3.0.0 make 1.4将redis安装到指定目录 make PREFIX=/usr/local/redis install 1.5启动redis ./redis-s

SpringBoot整合Redis并完成工具类

SpringBoot整合Redis的资料很多,但是我只需要整合完成后,可以操作Redis就可以了,所以不需要配合缓存相关的注解使用(如@Cacheable),而且我的系统框架用的日志是log4j,不是SpringBoot默认的Logback.通过查询资料我完成了Redis整合,并写了Redis操作工具类.特意在此记录一下,分享给大家,也方便以后查阅. 1.SpringBoot版本如下 <parent> <groupId>org.springframework.boot</gr

超简单!!!SpringBoot整合Redis

1.导入Pom.xml依赖 1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.ap

Spring Boot 学习----SpringBoot整合Redis

SpringBoot整合Redis 说明:由于使用的是window系统,所以本文中使用的redis是再Docker中运行的. 至于如何启动redis这里不再说明,需要的请自行百度. 配置pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </depend

SpringBoot整合Redis初实践

Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理. 有时,为了提升整个网站的性能,在开发时会将经常访问的数据进行缓存,这样在调用这个数据接口时,可以提高数据加载的效率 本文将在Boot项目中进行Redis的整合,将常用的数据缓存到Redis服务器中,提高常用服务的并发能力. 项目环境: jdk1.8 maven3.5 spring boot 2.0.4.RELEASE spring-boot-starter-data-redis 2.0.4.RE

SpringBoot整合Redis注意的一些问题

1:ERR value is not an integer or out of range 1-1:背景 使用redisTemplate.opsForValue().increment(key, delat)方法. 1-2:分析 分析:redis对任何不合法的值,都称为ERR.只有使用StringRedisSerializer序列化器才能使用incrment或者decrement方法 1-3:问题解决 使用GenericToStringSerializer.StringRedisSerializ

springboot整合redis

springboot-整合redis springboot学习笔记-4 整合Druid数据源和使用@Cache简化redis配置 一.整合Druid数据源 Druid是一个关系型数据库连接池,是阿里巴巴的一个开源项目,Druid在监控,可扩展性,稳定性和性能方面具有比较明显的优势.通过Druid提供的监控功能,可以实时观察数据库连接池和SQL查询的工作情况.使用Druid在一定程度上可以提高数据库的访问技能. 1.1 在pom.xml中添加依赖 <dependency> <groupId