`
zysnba
  • 浏览: 182851 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

springboot2集成redis

阅读更多
第一步导入需要引入的jar
compile("org.springframework.boot:spring-boot-starter-data-redis")


第二步配置
spring.redis.database=0 
spring.redis.host=127.0.0.1
spring.redis.port=6379 
spring.redis.password= 
spring.redis.pool.max-active=8 
spring.redis.pool.max-wait=-1 
spring.redis.pool.max-idle=8 
spring.redis.pool.min-idle=0 
spring.redis.timeout=0


第三步骤建立RedisConfiguration

package com.zys.util;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
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.*;


@Configuration
public class RedisConfiguration {

    @Bean
    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(redisConnectionFactory);

        // 使用Jackson2JsonRedisSerialize 替换默认序列化
        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);

        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);

        jackson2JsonRedisSerializer.setObjectMapper(objectMapper);

        // 设置value的序列化规则和 key的序列化规则
        redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.afterPropertiesSet();
        return redisTemplate;
    }
}


第四步骤:对redis进行封装类,方便存取,支持批量获取
package com.zys.util;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import org.springframework.stereotype.Component;
/**
* redicache 工具类
*
*/
@Component
public class RedisUtil {
@SuppressWarnings("rawtypes")
@Autowired
private RedisTemplate redisTemplate;
/**
* 批量删除对应的value
*
* @param keys
*/
public void remove(final String... keys) {
    for (String key : keys) {
    remove(key);
    }
}
/**
* 批量删除key
*
* @param pattern
*/
public void removePattern(final String pattern) {
    Set<Serializable> keys = redisTemplate.keys(pattern);
    if (keys.size() > 0)
    redisTemplate.delete(keys);
}
/**
* 删除对应的value
*
* @param key
*/
public void remove(final String key) {
    if (exists(key)) {
    redisTemplate.delete(key);
    }
}
/**
* 判断缓存中是否有对应的value
*
* @param key
* @return
*/
public boolean exists(final String key) {
    return redisTemplate.hasKey(key);
}
/**
* 读取缓存
*
* @param key
* @return
*/
public String get(final String key) {
    Object result = null;
    redisTemplate.setValueSerializer(new StringRedisSerializer());
    ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
    result = operations.get(key);
    if(result==null){
        return null;
    }
    return result.toString();
}
/**
* 写入缓存
*
* @param key
* @param value
* @return
*/
public boolean set(final String key, Object value) {
    boolean result = false;
    try {
    ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
    operations.set(key, value);
    result = true;
    } catch (Exception e) {
    e.printStackTrace();
    }
    return result;
}
/**
* 写入缓存
*
* @param key
* @param value
* @return
*/
public boolean set(final String key, Object value, Long expireTime) {
    boolean result = false;
    try {
    ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
    operations.set(key, value);
    redisTemplate.expire(key, expireTime, TimeUnit.SECONDS);
    result = true;
    } catch (Exception e) {
    e.printStackTrace();
    }
    return result;
    }

    public  boolean hmset(String key, Map<String, String> value) {
        boolean result = false;
        try {
            redisTemplate.opsForHash().putAll(key, value);
            result = true;
        } catch (Exception e) {
        e.printStackTrace();
        }
        return result;
    }
   
    public  Map<String,String> hmget(String key) {
        Map<String,String> result =null;
        try {
            result=  redisTemplate.opsForHash().entries(key);
        } catch (Exception e) {
        e.printStackTrace();
        }
        return result;
    }
    //添加返回对象
    public List<Object> getMuitiGet(List<String> keys){
    List<Object> list = this.redisTemplate.opsForValue().multiGet(keys);
    return list;
    }
}
分享到:
评论

相关推荐

    springboot 集成封装redis工具类redisUtils和单元测试

    文章是redisUtils工具类的封装,和基于springboot环境的单元测试; 文中封装了redis的众多方法,希望对您有所帮助。

    springBoot集成redis

    本文将详细介绍如何在Spring Boot项目中集成Redis和MyBatis,以实现数据缓存和数据库操作。 首先,为了在Spring Boot项目中引入Redis,我们需要在`pom.xml`文件中添加Spring Data Redis依赖: ```xml &lt;groupId&gt;...

    SpringBoot集成Redis

    SpringBoot集成Redis是一个常见的开发需求,它使得应用可以利用Redis的高性能、内存存储特性进行数据缓存和快速访问。在本项目中,我们将探讨如何在SpringBoot应用中配置和使用Redis,以及如何利用Redis实现登录缓存...

    springboot-集成redis

    在 SpringBoot 中集成 Redis,主要是为了利用 Redis 的高性能和丰富的数据结构来提升应用程序的性能。以下是一些集成的关键知识点: 1. **添加依赖**:首先,在 `pom.xml` 文件中,你需要添加 Spring Data Redis 和...

    springboot集成redis集群,redis安装包配置

    在本文中,我们将深入探讨如何在SpringBoot应用中集成Redis集群以及如何配置Redis服务器。首先,Redis是一个开源的、基于键值对的数据存储系统,常用于数据库、缓存和消息中间件。它以其高性能和易用性而备受青睐。...

    springboot整合redis集群(三种方式)源码

    springboot整合redis集群(三种方式)源码

    springboot中集成redis的方案

    文档中一步步的详细描述了如何集成springboot的方案,通过文档可以顺利集成这个redis方案

    SpringBoot 如何集成 Redis ?

    **SpringBoot 集成 Redis 知识点详解** 在 SpringBoot 应用中集成 Redis 数据库,可以方便地利用 Redis 的高速缓存能力来提升应用程序的性能。以下是集成 Redis 的详细步骤: 1. **添加依赖**: 在 `pom.xml` 文件...

    最最最简单的SpringBoot+Redis

    标题 "最最最简单的SpringBoot+Redis" 描述了如何在SpringBoot项目中集成和使用Redis,这是一个流行的Java开发框架和一个...通过这些步骤,开发者可以轻松地在SpringBoot应用中集成Redis,实现高效的数据缓存和持久化。

    springboot整合redis集群零配置

    首先,让我们来看看"Springboot整合Redis集群,零配置方式"。在Spring Boot中,我们可以通过引入`spring-boot-starter-data-redis`依赖来启用Redis支持。但是,要配置Redis集群,通常需要设置多个节点地址、密码、...

    java抽奖系统后台 springboot+mybatis redis队列处理高并发.rar

    在构建一个基于Java的抽奖系统后台时,采用SpringBoot、MyBatis以及Redis队列来处理高并发场景是一项常见的技术选型。以下将详细介绍这些关键组件及其在抽奖系统中的作用。 1. **SpringBoot** SpringBoot是Spring...

    SpringBoot课程-Redis.pdf

    3. **开箱即用**:SpringBoot集成了大量的第三方库,例如Redis、MongoDB、JPA、RabbitMQ、Quartz等,这些库通常只需要简单的配置就可以直接使用。 4. **简化依赖管理**:SpringBoot通过BOM(Bill of Materials)机制...

    SpringBoot集成Redis-Demo

    SpringBoot集成Redis-Demo是一个关于如何在Java应用中利用SpringBoot框架与Redis进行集成的实践教程。在这个项目中,我们将探讨如何配置、使用以及优化SpringBoot应用中的Redis数据存储。 首先,SpringBoot简化了...

    SpringBoot集成Redis集群

    SpringBoot集成Redis集群 在本文档中,我们将指导您如何在SpringBoot 2.X中集成Redis集群。下面是相关的知识点: 集成Redis集群的必要性 在实际应用中,使用Redis集群可以提高系统的可扩展性和可靠性。Redis集群...

    SpringBoot项目SSM+Redis整合

    在项目中,`springBoot_Mybatis-2`可能是一个包含Mybatis相关配置或实体类的子目录。通常,这个目录下会有`pom.xml`或`build.gradle`文件来管理依赖,`src/main/java`存放Java源代码,`src/main/resources`用于配置...

    springboot_sentinelredis

    标签 "springboot"、"sentinel" 和 "redis" 确定了讨论的主题,即Spring Boot、Sentinel以及Redis这三个关键技术和组件的集成。Spring Boot简化了Spring应用程序的开发,通过自动配置和起步依赖提供了快速构建应用...

    Springboot+redis集成

    SpringBoot与Redis的集成是现代Java开发中常见的一种技术组合,尤其在高并发、分布式场景下,它们的应用广泛且高效。SpringBoot简化了Spring应用程序的配置和管理,而Redis则作为一个高性能的键值数据存储系统,常...

    myredis_redis_springboot_springboot+Redis_DEMO_

    在本项目"Myredis_redis_springboot_springboot+Redis_DEMO_"中,主要涉及的是SpringBoot框架与Redis数据库的...通过学习这个DEMO,开发者可以迅速掌握SpringBoot集成Redis的关键技术,提升其在实际开发中的应用能力。

    springboot_redis

    描述中提到的“spring boot 集成redis”是一个示例项目,提供了如何在Spring Boot应用中整合Redis的具体步骤。通过访问提供的博客链接(http://blog.csdn.net/woniu211111/article/details/54564308),我们可以深入...

    springboot集成redis.md

    springboot集成redis缓存开发文档 有详细介绍。。

Global site tag (gtag.js) - Google Analytics