spring cloud +redis整合

56 篇文章 0 订阅
24 篇文章 1 订阅

1、添加pom依赖文件

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-redis</artifactId>
            <version>1.0.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.4.2</version>
        </dependency>

2、redis信息配置

# REDIS (RedisProperties)
# Redis数据库索引(默认为0)
spring.redis.database=0  
# Redis服务器地址
spring.redis.host=127.0.0.1
# Redis服务器连接端口
spring.redis.port=6379  
# Redis服务器连接密码(默认为空)
spring.redis.password=123456
# 连接池最大连接数(使用负值表示没有限制)
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  

3、读取配置文件

package com.jinzhu.commons.config.redis;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import redis.clients.jedis.JedisPoolConfig;

import java.lang.reflect.Method;

/**
 * Created by rick on 2017/12/16.
 */
@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport {
    private static Logger logger = Logger.getLogger(RedisConfig.class);
    @Bean
    public KeyGenerator keyGenerator() {
        return new KeyGenerator() {
            @Override
            public Object generate(Object target, Method method, Object... params) {
                StringBuilder sb = new StringBuilder();
                sb.append(target.getClass().getName());
                sb.append(method.getName());
                for (Object obj : params) {
                    sb.append(obj.toString());
                }
                return sb.toString();
            }
        };
    }
    // @SuppressWarnings("rawtypes")
    @Bean
    public CacheManager cacheManager(RedisTemplate redisTemplate) {
        RedisCacheManager rcm = new RedisCacheManager(redisTemplate);
        //设置缓存过期时间
        //rcm.setDefaultExpiration(60);//秒
        return rcm;
    }
    @Autowired
    RedisTemplate redisTemplate;
    @Bean
    public ValueOperations<String,Object> vos(){
        return redisTemplate.opsForValue();
    }
}
4、使用 RedisTemplate获取redis信息

package com.jinzhu.web.controller;

import com.jinzhu.commons.config.redis.RedisCache;
import com.jinzhu.commons.core.message.Message;
import com.jinzhu.commons.core.message.SuccessMessage;
import com.jinzhu.user.UserInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;

@RestController
public class MainController {


    private static final Logger LOGGER = LoggerFactory.getLogger(MainController.class);
    @Autowired
    private RestTemplate restTemplate;
    @Autowired
    protected RedisTemplate redisTemplate;


    @RequestMapping(value = "userinfo/get")
    @ResponseBody
    public Message getUserInfo(Long userId) {
        LOGGER.info("测试redis");
        String redisSet = "hello";
        redisTemplate.opsForValue().set("redisSet",redisSet);
        UserInfo user = new UserInfo();
        user.setUserId(userId);
        ResponseEntity<UserInfo> entity = restTemplate.postForEntity("http://JINZHU-SERVICE-PRODUCER/userinfo/get", user, UserInfo.class, new Object[]{});
        SuccessMessage message = new SuccessMessage();
        UserInfo userInfo = entity.getBody();
        Object obj = redisTemplate.opsForValue().get("redisSet");
        userInfo.setUserName(obj.toString());
        message.setData(userInfo);
        return message;
    }
}





  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Spring Cloud 是一个基于 Spring 框架的开发工具集,其中包含了许多开箱即用的组件和库,用于快速开发分布式系统。 要将 Spring CloudRedis 集成,您需要使用 Spring Data Redis 库。Spring Data Redis 提供了与 Redis 交互的 API,它是一个面向对象的 Redis 数据访问库,可以简化与 Redis 的集成和操作。 以下是将 Spring CloudRedis 集成的一些步骤: 1. 在 pom.xml 文件中添加 Spring Data Redis 的依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 2. 在 application.yml 文件中添加 Redis 的配置信息: ``` spring: redis: host: your-redis-host port: your-redis-port password: your-redis-password ``` 3. 使用 @EnableCaching 注解启用 Spring 缓存,并配置 Redis 缓存管理器: ``` @Configuration @EnableCaching public class RedisCacheConfig extends CachingConfigurerSupport { @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory); redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); return redisTemplate; } @Bean public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) { RedisCacheManager redisCacheManager = RedisCacheManager.builder(redisConnectionFactory).build(); return redisCacheManager; } } ``` 4. 在需要缓存的方法上使用 @Cacheable 注解,指定缓存的 key 和缓存的名称: ``` @Service public class UserService { @Autowired private UserRepository userRepository; @Cacheable(value = "userCache", key = "#id") public User getUserById(Long id) { return userRepository.findById(id).orElse(null); } } ``` 通过以上步骤,您可以在 Spring Cloud 项目中集成 Redis,实现数据缓存的功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值