首页 > 数据库 >SpringBoot集成Redis

SpringBoot集成Redis

时间:2023-05-31 22:56:26浏览次数:66  
标签:集成 SpringBoot Redis redis springframework spring org data redisTemplate

依赖包:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>

配置文件

如果是 properties 文件,使用:

spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.database=0
##连接超时时间(毫秒)
spring.redis.timeout=1800000
spring.redis.password=123456
##连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.lettuce.pool.max-wait=-1
##连接池中的最大空闲连接
spring.redis.lettuce.pool.max-idle=8
##连接池中的最小空闲连接
spring.redis.lettuce.pool.min-idle=0
##连接池最大连接数(使用负值表示没有限制)
spring.redis.lettuce.pool.max-active=20

如果用的是 yml文件,则是:

spring:
    redis:
        database: 0
        host: 127.0.0.1
        lettuce:
            pool:
                max-active: 20
                max-idle: 8
                max-wait: -1
                min-idle: 0
        password: 123456
        port: 6379
        timeout: 180000

Redis配置:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;

@Configuration
public class RedisConfig {
    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        // 创建模板
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
        // 设置连接工厂
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        // 设置序列化工具
        GenericJackson2JsonRedisSerializer jsonRedisSerializer =
                new GenericJackson2JsonRedisSerializer();
        // key和 hashKey采用 string序列化
        redisTemplate.setKeySerializer(RedisSerializer.string());
        redisTemplate.setHashKeySerializer(RedisSerializer.string());
        // value和 hashValue采用 JSON序列化
        redisTemplate.setValueSerializer(jsonRedisSerializer);
        redisTemplate.setHashValueSerializer(jsonRedisSerializer);
        return redisTemplate;
    }
}

代码示例


@Service
public class RedisTestServiceImpl {

    @Autowired
    private StringRedisTemplate redisTemplate;

    /**
     * 缓存的前缀
     */
    private static final String PREFIX = "PREFIX_";


    public String getData(String id) {
        String key = PREFIX + id;
        String data = redisTemplate.opsForValue().get(key);
        if (StringUtils.isNotBlank(data)) {
            return data;
        }
        //实际中一般是从数据库中查询,有数据就插入缓存。
        String value = "test";
        //缓存5分钟
        redisTemplate.opsForValue().set(key, value, 5L, TimeUnit.MINUTES);
        return value;
    }


}

参考资料:

https://blog.csdn.net/weixin_59654772/article/details/125692784

标签:集成,SpringBoot,Redis,redis,springframework,spring,org,data,redisTemplate
From: https://www.cnblogs.com/expiator/p/17447539.html

相关文章

  • Redis 配置文件的详解
    1.Redis配置文件的位置在linux操作系统中,安装了Redis后,Redis的配置文件位于Redis安装目录下,文件名为redis.conf(例如:Ubuntuapt命令安装,则配置文件位于/etc/redis/redis.conf)。Redis启动时会加载这个配置文件,在运行时按照配置进行工作。网络上的redis.conf配置文......
  • 吃透Redis面试八股文
    内容摘自我的学习网站:topjavaer.cnRedis连环40问,绝对够全!Redis是什么?Redis(RemoteDictionaryServer)是一个使用C语言编写的,高性能非关系型的键值对数据库。与传统数据库不同的是,Redis的数据是存在内存中的,所以读写速度非常快,被广泛应用于缓存方向。Redis可以将数据写入磁......
  • Spider理论系列--Redis(值得类型)
    Redis值的类型字符串String哈希hash列表list集合set有序集合zset数据操作的全部命令:http://redis.cn/commands.htmlconfiggetdatabases查看所有的数据库数据库以0开始一共16个(1)String概述:String是redis最基本的类型,最大能存储512MB的数据,String类型是二进制安全的,即可......
  • Redis配置文件
    一、Units单位配置大小单位,开头定义了一些基本度量单位,只支持byte,不支持bit,大小写不敏感二、网络配置默认情况下bind=127.0.0.1只能接收本机的访问请求,不写的情况下,无限制接受任何ip地址的访问生产环境肯定要写你应用服务器的地址;服务器是需要远程访问的,所以需要将其注释掉如......
  • Redis常用数据类型
    一、Redis键(key)keys*查看当前库所有key(匹配keys*1)existskey 判断某个key是否存在typekey查看key类型delkey 删除keyunlinkkey根据value选择非阻塞删除,仅将keys从keyspace元数据中删除,真正的删除操作会在后续异......
  • Redis规范
    Key的命名规范可读性和可管理性:业务名:实体名:id⇒blog:article:1(使不同类型的数据统一放到一个命名空间下,键命名以冒号分开即可:)简洁性:减小key的长度,建议不要超过44字节(超过这个长度存储的数据类型不一样,性能也不一样)humanresource:employee:88301⇒hr:emp:88301不要包......
  • Redis主从复制、哨兵、集群原理部署介绍
    Redis主从复制、哨兵、集群原理部署介绍原创 程序话题 IT当时语 2023-04-1820:26 发表于广东收录于合集#架构设计22个#分布式系统17个#Redis4个#微服务11个#分布式锁3个Redis主从复制、哨兵、集群原理部署介绍Redis主从复制的核心原理在分布式架构设计中......
  • springboot整合log4j解决依赖冲突
    首先将web模块的日志排除<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion>......
  • SpringBoot的基础
    1、获取配置文件的值:@Value的方式yml配置文件redis:host:199.22.22.341.1、用法1:普通用法@Value("${redis.host}")privateStringparamName;结果1.2、用法2:冒号(:)的作用冒号(:)的作用:当获取的值没有值时,返回冒号后的预设值默认值@Value("${redis......
  • 为什么一定要做集成测试?
    集成测试是软件开发中的一个重要阶段,也称为集成验证。它的主要目的是测试不同模块间的互操作性,以确保系统在整体上能够正常运行,并且符合预期的功能和性能要求。首先,集成测试可以帮助减少错误和缺陷,可以发现并解决因各种原因导致的模块间的集成问题。通过对软件进行完整性测试,开......