Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java工具类(redis配置工具包)

java工具类(redis配置工具包)

作者头像
java攻城狮
发布于 2020-10-10 08:08:23
发布于 2020-10-10 08:08:23
97200
代码可运行
举报
文章被收录于专栏:个人积累个人积累
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.adingxiong.pm.config;


import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.cache.RedisCacheWriter;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.*;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

import java.time.Duration;


/**
 * redis的配置相关
 * EnableCaching  开启缓存注解
 *
 * @author a
 */
@Configuration
@EnableCaching

public class RedisConfig extends CachingConfigurerSupport {


    /**
     * 选择Redis 作为默认的缓存工具
     *
     * @param redisConnectionFactory
     * @return
     */
    @Bean
    public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {
        // 设置缓存有效期一小时
        RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
                .entryTtl(Duration.ofHours(1));
        return RedisCacheManager
                .builder(RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory))
                .cacheDefaults(redisCacheConfiguration).build();
    }

    /**
     * redis的template的相关配置
     * @param factory
     * @return
     */
    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        //配置连接工厂
        template.setConnectionFactory(factory);
        //使用Jackson2JsonRedisSerializer来序列化和反序列化value值
        Jackson2JsonRedisSerializer json = new Jackson2JsonRedisSerializer(Object.class);

        ObjectMapper mapper = new ObjectMapper();
        //指定要序列化的域,field,get和set,以及修饰的范围,ANY是包括private和public
        mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        //指定序列化的输入类型,类必须是非final修饰的,final修饰的类,比如String,Integer会抛出异常
        mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        json.setObjectMapper(mapper);

        //值采用json序列化
        template.setValueSerializer(json);
        //使用StringRedisSerializer来序列化和反序列化redis的值
        template.setKeySerializer(new StringRedisSerializer());

        //设置hash key和value序列化模式
        template.setHashKeySerializer(new StringRedisSerializer());
        template.setHashValueSerializer(json);
        template.afterPropertiesSet();
        return template;
    }

    /**
     * 对hash类型数据的操作
     * @param redisTemplate
     * @return
     */
    @Bean
    public HashOperations<String,String,Object> hashOperations(RedisTemplate<String,Object> redisTemplate){
        return  redisTemplate.opsForHash();
    }


    /**
     *  对redis字符串类型数据进行处理
     * @param redisTemplate
     * @return
     */
    @Bean
    public ValueOperations<String,Object> valueOperations(RedisTemplate<String,Object> redisTemplate){
        return redisTemplate.opsForValue();
    }

    /**
     * 对 redis  数组集合数据进行处理
     * @param redisTemplate
     * @return
     */
    @Bean
    public ListOperations<String,Object> listOperations(RedisTemplate<String,Object> redisTemplate){
        return redisTemplate.opsForList();
    }

    /**
     * 对 redis  无序集合数据进行处理
     * @param redisTemplate
     * @return
     */
    @Bean
    public SetOperations<String,Object> setOperations (RedisTemplate<String,Object> redisTemplate){
        return redisTemplate.opsForSet();
    }


    /**
     * 对 redis  有序集合数据进行处理
     * @param redisTemplate
     * @return
     */
    @Bean
    public ZSetOperations<String,Object> zSetOperations (RedisTemplate<String,Object> redisTemplate){
        return redisTemplate.opsForZSet();
    }

}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Springboot中的redis配置类
简单记录一下 首先依赖: <!-- redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- spring2.X集成redis所需common-pool2-->
Tom2Code
2022/11/21
7070
redis过期监听
今天写拼团功能,如果24小时后还没有人满,则此次拼团就失败了,那么这里我用redis过期监听来实现,键过期去处理订单状态等业务
adu
2022/10/30
2.4K0
redis过期监听
Spring Boot 结合 Redis 的序列化配置
默认情况下,Spring 为我们提供了一个 RedisTemplate 来进行对 Redis 的操作,但是 RedisTemplate 默认配置的是使用Java本机序列化。
Vincent-yuan
2021/10/28
4.2K0
Spring Boot 结合 Redis 的序列化配置
Redis---整合SpringBoot篇
Redis6 1、引入redis相关依赖 2、application.properties配置redis配置 3.添加redis配置类 4.测试一下 RedisTemplate基本使用如下 ---- 1、引入redis相关依赖 <!-- redis的启动器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </depende
大忽悠爱学习
2021/11/15
3090
SpringBoot 整合 Redis
因为 Redis 有 这5种基本数据结构类型分别为:String(字符串)、List(列表)、Set(集合)、Hash(散列)和 Zset(有序集合)。
收心
2022/01/17
3960
SpringBoot 整合 Redis
Spring Boot 整合 Redis
因为首页接口对应获取的首页数据变化不大,但访问量较大,所以就有必要将首页接口数据缓存到redis缓存中,减少数据库压力和提高访问速度
FHAdmin
2022/03/03
1K0
springboot整合redis进行缓存的使用
看过我的文章的都应该有所了解如何使用docker方式进行redis环境的搭建过程,想要了解的可以看下历史文章。今天我们想要分享的就是如何使用redis进行缓存的使用。
码农王同学
2019/11/28
5310
springboot整合redis进行缓存的使用
Spring Boot整合 NoSQL 数据库 Redis
在日常的开发中,除了使用Spring Boot这个企业级快速构建项目的框架之外,随着业务数据量的大幅度增加,对元数据库造成的压力成倍剧增。在此背景下,Redis这个NoSQL数据库已然整个项目架构中的不可或缺的一部分,懂得如何Spring Boot整合 Redis,是当今开发人员必备的一项技能,接下来对整合步骤进行详细说明。
百思不得小赵
2022/12/01
4780
Spring Boot整合 NoSQL 数据库 Redis
springboot配置RedisTemplate和RedisCacheManager
1、项目目录结构: 2、application.properties配置文件: 我这里redis连的是虚拟机上面的,你改下host地址就行 spring.datasource.url=jdbc:mysql://localhost:3306/spring_cache spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jd
别团等shy哥发育
2023/02/25
1.3K0
springboot配置RedisTemplate和RedisCacheManager
Spring Boot二级缓存配置
之前说了使用JdbcTemplate、MyBatis、Spring Data JPA三种连接数据库的方式。
码客说
2024/01/18
4140
Spring Boot二级缓存配置
从零搭建Spring Boot脚手架(6):整合Redis作为缓存
上一文我们整合了Mybatis Plus,今天我们会把缓存也集成进来。缓存是一个系统应用必备的一种功能,除了在减轻数据库的压力之外。还在存储一些短时效的数据场景中发挥着重大作用,比如存储用户Token、短信验证码等等,目前缓存的选型还是比较多的,EHCACHE、HAZELCAST、CAFFEINE、COUCHBASE以及本文要整合的REDIS。接下来我们将会在kono脚手架项目中集成Spring Cache以及Redis。
码农小胖哥
2020/08/25
1K0
从零搭建Spring Boot脚手架(6):整合Redis作为缓存
SpringBoot集成Redis缓存
https://www.cnblogs.com/noneplus/p/11532065.html
Noneplus
2019/09/24
6120
SpringBoot集成Redis缓存
SpringBoot整合redis
前言 使用注解实现Redis缓存功能的具体代码 1 引入jar包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 2 添加配置 spring.redis.host=xxxxxxx spring.redis.port=6379 // 如
在水一方
2022/10/04
3130
Springboot 2.0 ——集成redis
最近在入门SpringBoot,然后在感慨 SpringBoot较于Spring真的方便多时,顺便记录下自己在集成redis时的一些想法。
烂猪皮
2018/10/18
7840
Spring Data Redis
Java客户端(上)章节中我们使用了redis的Java客户端的第三方开源框架——Jedis,但目前Java应用已经被Spring(Spring Boot)统治了大半江山,就连一些数据连接操作的封装Spring也不放过,这其中也不乏有redis的封装——Spring Data Redis。关于Spring Data Redis的官方介绍:https://spring.io/projects/spring-data-redis。
用户1148394
2020/03/02
5810
Spring boot配置多个Redis数据源操作实例
平时都是使用本地环境的单Redis情况比较多,在集群环境的情况下连接多个Redis数据库是很正常的情况。
程序员小强
2019/06/02
13.1K0
【SpringBoot2.0系列08】SpringBoot之redis数据缓存管理
【SpringBoot2.0系列02】SpringBoot之使用Thymeleaf视图模板
yukong
2018/08/20
5980
SpringBoot集成Redis和配置Redis做缓存[通俗易懂]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/08
1.4K0
SpringCache基本配置类
benym
2024/05/18
1160
Spring的Redis配置与使用
Redis是一种特殊类型的数据库,他被称之为key-value存储 本文覆盖缓存和存储两方面进行说明,使用的是Spring 4.0和Java配置方式 存储 Redis的配置 package springmvc.rootconfig; import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.EnableCaching; import org.springframework.cont
迹_Jason
2019/05/30
2K0
相关推荐
Springboot中的redis配置类
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验