spring boot:集成缓存redis

1.     安装redis

1.     Windows安装

安装参考地址,点击此处

启动redis: redis-server.exeredis.windows.conf 


客户端连接验证redis redis-cli.exe-h 127.0.0.1 -p 6379

客户端可视化工具: Redis Client / FastRedis

运行状态监控:CacheCloud

 

1.     Linux安装

tar -zvxf redis-3.2.9.tar.gz

ln -s redis-3.2.9.tar.gz redis

cd redis

make

make install

 

允许其他客户端地址访问:

打开redis.conf文件注释掉bind 127.0.0.1

 

配置环境变量:vi /etc/profile

export REDIS_HOME=/usr/local/software/redis

export PATH=$PATH:$REDIS_HOME/bin

source /etc/profile 生效

 

启动:

redis-server /usr/local/software/redis/redis.conf

 

停止:

redis-cli shutdown 

kill redis进程的pid

比如: kill -9 1420

 

配置redis密码:进入redis.conf

requirepass your_password

保存重启

2.     Docker安装redis

mkdir ~/redis

cd redis

docker pull  redis:3.2

docker ps

docker run -d -ti \

-p 7481:6379 \

-v /project/pos/conf/redis.conf:/etc/redis/redis.conf \

-v /project/pos/data:/data \

--restart always \

--name pos_redis \

daocloud.io/redis \

redis-server /etc/redis/redis.conf

docker exec -it ${CONTAINER_ID} redis-cli

 

1.     Redis作为mybatis二级缓存

1.     添加依赖

<!-- 持久化和缓存 -->

       <dependency>

           <groupId>org.springframework.boot</groupId>

           <artifactId>spring-boot-starter-data-redis</artifactId>

       </dependency>

       <dependency>

           <groupId>mysql</groupId>

           <artifactId>mysql-connector-java</artifactId>

       </dependency>

       <dependency>

           <groupId>tk.mybatis</groupId>

           <artifactId>mapper-spring-boot-starter</artifactId>

           <version>1.1.0</version>

       </dependency>

       <dependency>

           <groupId>com.github.pagehelper</groupId>

           <artifactId>pagehelper-spring-boot-starter</artifactId>

           <version>1.1.0</version>

           <exclusions>

              <exclusion>

                  <artifactId>tomcat-jdbc</artifactId>

                  <groupId>org.apache.tomcat</groupId>

              </exclusion>

           </exclusions>

       </dependency>

       <dependency>

           <groupId>org.mybatis.generator</groupId>

           <artifactId>mybatis-generator-core</artifactId>

           <version>1.3.5</version>

           <scope>test</scope>

       </dependency>

       <dependency>

           <groupId>com.zaxxer</groupId>

           <artifactId>HikariCP</artifactId>

       </dependency>

       <dependency>

           <groupId>com.alibaba</groupId>

           <artifactId>druid</artifactId>

           <version>1.1.1</version>

       </dependency>

       <dependency>

           <groupId>com.h2database</groupId>

           <artifactId>h2</artifactId>

       </dependency>

       <dependency>

           <groupId>mysql</groupId>

           <artifactId>mysql-connector-java</artifactId>

       </dependency>

       <dependency>

           <groupId>org.springframework.boot</groupId>

           <artifactId>spring-boot-starter-aop</artifactId>

       </dependency>

       <dependency>

           <groupId>org.springframework.boot</groupId>

           <artifactId>spring-boot-starter-test</artifactId>

       </dependency>

 

2.     参数配置

spring:

  redis: 

      database: 

      host:  127.0.0.1 

      port:  6379 

      password:  

      pool: 

         max-active:

         max-wait: -1 

         max-idle:

         min-idle: 0

      timeout: 0        #连接超时时长

      data-timeout: 10  #数据缓存超时时长(秒)  

3.     缓存方式参数java配置

package com.svw.tbox.tcloud.commons.ms.config;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.cache.CacheManager;

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.data.redis.cache.RedisCacheManager;

import org.springframework.data.redis.connection.RedisConnectionFactory;

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.serializer.Jackson2JsonRedisSerializer;

 

import com.fasterxml.jackson.annotation.JsonAutoDetect;

import com.fasterxml.jackson.annotation.PropertyAccessor;

import com.fasterxml.jackson.databind.ObjectMapper;

 

/**

 * <p>ClassName: RedisConfig</p>

 * <p>Description: Redis缓存配置</p>

 * <p> Author: hurf</p>

 * <p> Date: 20171116</p>

 */

@Configuration

@EnableCaching

publicclass RedisConfig {

    @Value("${spring.redis.host}")

    private String host;

    @Value("${spring.redis.port}")

    privateintport;

    @Value("${spring.redis.timeout}")

    privateinttimeout;

    @Value("${spring.redis.password}")

    private String password;

    @Value("${spring.redis.data-timeout}")

    privateintdataTimeout;

 

    /**

     * <p> Title: 生成key </p>

     * <p>Description: key组成:类名+方法名+参数值</p>

     * @return

     */

    @Bean

    public KeyGenerator keyGenerator() {

       return (target, method, params) -> {

           StringBuilder sb = new StringBuilder();

           sb.append(target.getClass().getName());

           sb.append(method.getName());

           for (Object obj : params) {

              sb.append(obj.toString());

           }

           returnsb.toString();

       };

    }

 

    /**

     * <p>Title: 配置连接参数</p>

     * <p>Description: 配置ip/主机名、端口、密码、连接超时时间</p>

     * @return

     */

    @Bean

    public JedisConnectionFactory redisConnectionFactory() {

       JedisConnectionFactory factory = new JedisConnectionFactory();

       factory.setHostName(host);

       factory.setPort(port);

       factory.setPassword(password);

       factory.setTimeout(timeout); // 设置连接超时时间

       returnfactory;

    }

 

    /**

     * <p>Title: 设置数据缓存默认超时时长</p>

     * <p>Description: 以秒为单位</p>

     * @param redisTemplate

     * @return CacheManager

     */

    @Bean

    public CacheManager cacheManager(@SuppressWarnings("rawtypes") RedisTemplate redisTemplate) {

       RedisCacheManager cacheManager = new RedisCacheManager(redisTemplate);

       cacheManager.setDefaultExpiration(dataTimeout);

       returncacheManager;

    }

 

    /**

     * <p>Title: 设置序列化工具,开启事务</p>

     * <p> Description: 这样ReportBean不需要实现Serializable</p>

     * @param factory

     * @return RedisTemplate

     */

    @Bean

    public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {

       StringRedisTemplate template = new StringRedisTemplate(factory);

       template.setEnableTransactionSupport(true);//开启事务支持 ,在方法或者类上统一使用@Transactional标注事务

       setSerializer(template);

       template.afterPropertiesSet();

       returntemplate;

    }

 

    @SuppressWarnings("unchecked")

    privatevoid setSerializer(StringRedisTemplate template) {

       @SuppressWarnings("rawtypes")

       Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);

       ObjectMapper om = new ObjectMapper();

       om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);

       om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);

       jackson2JsonRedisSerializer.setObjectMapper(om);

       template.setValueSerializer(jackson2JsonRedisSerializer);

    }

}

 

4.     非Mybatis 二级缓存,RedisTemplate封装

//接口

/**

* RedisService.java

* Created at 2017年11月18日

* Created by hurf

* Copyright (C) 2017 XXX, All rights reserved.

*/

package com.svw.tbox.tcloud.gateway.service;

 

import java.util.ArrayList;

import java.util.List;

import java.util.concurrent.TimeUnit;

 

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.dao.DataAccessException;

import org.springframework.data.redis.connection.RedisConnection;

import org.springframework.data.redis.core.RedisCallback;

import org.springframework.data.redis.core.RedisTemplate;

import org.springframework.data.redis.serializer.RedisSerializer;

import org.springframework.stereotype.Service;

 

import com.svw.tbox.tcloud.commons.util.JSONUtil;

import com.svw.tbox.tcloud.commons.util.LogUtil;

 

/**

 * <p>ClassName: RedisService</p>

 * <p>Description: RedisTemplate常用方法类</p>

 * <p>Author: hurf</p>

 * <p>Date: 2017年11月18日</p>

 */

@Service

public class JedisTemplate {

 

         public JedisTemplate() {

                  super();

         }

 

         @Autowired

         private RedisTemplate<String, ?> redisTemplate;

 

         /**

          *

          * <p>Title: 新增POJO对象</p>

          * <p>Description: </p>

          * @param key

          * @param value

          * @return

          */

         public <T> boolean set(final String key, final T value) {

                  return set(key, JSONUtil.toJson(value));

         }

 

         /**

          *

          * <p>Title: 新增POJO对象带过期时间</p>

          * <p>Description: 单位秒</p>

          * @param key

          * @param value

          * @param timeout 秒

          * @return

          */

         public <T> boolean set(String key, T value, long timeout) {

                  return set(key, JSONUtil.toJson(value), timeout);

         }

 

         /**

          *

          * <p>Title: 从缓存取出一个POJO类</p>

          * <p>Description: </p>

          * @param key

          * @param clz

          * @return

          */

         public <T> T get(final String key, Class<T> clz) {

                  return JSONUtil.toBean(get(key), clz);

         }

 

         /**

          *

          * <p>Title: 新增字符串</p>

          * <p>Description: </p>

          * @param key

          * @param value

          * @return

          */

         public boolean set(final String key, final String value) {

                  boolean result = redisTemplate.execute(new RedisCallback<Boolean>() {

                          public Boolean doInRedis(RedisConnection connection) throws DataAccessException {

                                   RedisSerializer<String> serializer = redisTemplate.getStringSerializer();

                                   connection.set(serializer.serialize(key), serializer.serialize(value));

                                   return true;

                          }

                  });

 

                  return result;

         }

 

         /**

          *

          * <p>Title: 新增字符串带过期时间</p>

          * <p>Description: 单位秒</p>

          * @param key

          * @param value

          * @param timeout

          * @return

          */

         public boolean set(String key, String value, long timeout) {

                  boolean result = redisTemplate.execute(new RedisCallback<Boolean>() {

 

                          public Boolean doInRedis(RedisConnection connection) throws DataAccessException {

                                   RedisSerializer<String> serializer = redisTemplate.getStringSerializer();

                                   connection.set(serializer.serialize(key), serializer.serialize(value));

                                   return true;

                          }

                  });

 

                  redisTemplate.expire(key, timeout, TimeUnit.SECONDS);

                  return result;

         }

 

         /**

          *

          * <p>Title: 获取字符串</p>

          * <p>Description: </p>

          * @param key

          * @return

          */

         public String get(final String key) {

                  String result = redisTemplate.execute(new RedisCallback<String>() {

 

                          public String doInRedis(RedisConnection connection) throws DataAccessException {

                                   RedisSerializer<String> serializer = redisTemplate.getStringSerializer();

                                   byte[] value = connection.get(serializer.serialize(key));

                                   return serializer.deserialize(value);

                          }

                  });

                  return result;

         }

 

         /**

          *

          * <p>Title: 判断是否存在</p>

          * <p>Description: </p>

          * @param key

          * @return

          */

         public boolean isExists(final String key) {

                  return redisTemplate.execute(new RedisCallback<Boolean>() {

 

                          public Boolean doInRedis(RedisConnection connection) throws DataAccessException {

                                   RedisSerializer<String> serializer = redisTemplate.getStringSerializer();

                                   return connection.exists(serializer.serialize(key));

                          }

                  });

         }

 

         /**

          *

          * <p>Title: 指定节点过期时间</p>

          * <p>Description: 单位 秒</p>

          * @param key

          * @param expire

          * @return

          */

         public boolean expire(final String key, long expire) {

                  return redisTemplate.expire(key, expire, TimeUnit.SECONDS);

         }

 

         /**

          *

          * <p>Title: 删除一个节点</p>

          * <p>Description: </p>

          * @param key

          */

         public void evict(String key) {

                  redisTemplate.delete(key);

         }

        

         /**

          *

          * <p>Title: 删除节点</p>

          * <p>Description: </p>

          * @param key

          * @return 是否删除成功

          */

         public boolean delete(String key) {

                  try {

                          evict(key);

                          return true;

                  } catch (Exception e) {

                          LogUtil.error(()->e.getMessage()+"===>>>"+e.getCause());

                          return false;

                  }

         }

        

        

         /**

          *

          * <p>Title: 查询数据库节点数</p>

          * <p>Description: </p>

          * @return

          */

         public Long dbSize() {

 

                  return redisTemplate.execute(new RedisCallback<Long>() {

 

                          public Long doInRedis(RedisConnection connection) throws DataAccessException {

                                   return connection.dbSize();

                          }

                  });

 

         }

 

         /**

          *

          * <p>Title: 清空数据</p>

          * <p>Description: </p>

          * @return

          */

         public Boolean flushDB() {

                  return redisTemplate.execute(new RedisCallback<Boolean>() {

 

                          public Boolean doInRedis(RedisConnection connection) throws DataAccessException {

                                   connection.flushDb();

                                   return true;

                          }

                  });

         }

 

         /**

          *

          * <p>Title: 存入列表</p>

          * <p>Description: </p>

          * @param key

          * @param list

          * @return

          */

         public <T> boolean setList(String key, List<T> list) {

                  String value = JSONUtil.toJson(list);

                  return set(key, value);

         }

 

         /**

          *

          * <p>Title: 获取列表</p>

          * <p>Description: </p>

          * @param key

          * @param clz

          * @return

          */

         public <T> List<T> getList(String key, Class<T> clz) {

                  List<T> list = new ArrayList<>();

                  String json = get(key);

                  if (json != null) {

                          list = JSONUtil.toList(json, clz);

                  }

                  return list;

         }

 

         /**

          *

          * <p>Title: 清空所有缓存</p>

          * <p>Description: </p>

          * @return

          */

         public Boolean flushAll() {

                  return redisTemplate.execute(new RedisCallback<Boolean>() {

 

                          public Boolean doInRedis(RedisConnection connection) throws DataAccessException {

                                   connection.flushAll();

                                   return true;

                          }

                  });

         }

 

}

 

5.     效果一
1.      封装单表缓存(只缓存查询结果)

/**

* GateBaseService.java

* Created at 2017年11月19日

* Created by hurf

* Copyright (C) 2017 XXX, All rights reserved.

*/

package com.svw.tbox.tcloud.gateway.service;

 

import java.util.List;

 

import org.springframework.cache.annotation.CacheConfig;

import org.springframework.cache.annotation.Cacheable;

import org.springframework.transaction.annotation.Transactional;

 

import com.svw.tbox.tcloud.common.biz.BaseService;

 

import tk.mybatis.mapper.common.Mapper;

 

/**

 * <p>ClassName: GateBaseService</p>

 * <p>Description: 缓存到Redis的单表CURD类,缓存名gateway,key规则是类名+方法名+参数值</p>

 * <p>Author: hurf</p>

 * <p>Date: 2017年11月19日</p>

 */

@Transactional

@CacheConfig(cacheNames = "gateway",keyGenerator="keyGenerator")

public class BaseService4Gateway<M extends Mapper<T>, T extends Object> extends BaseService<M, T>{

 

         /**

          * <p>Title: 查询一条数据</p>

          * <p>Description: </p>

          * @param entity

          * @return

          */

         @Cacheable

         public T selectOneAndCache(T entity) {

                  return mapper.selectOne(entity);

         }

 

         /**

          * 主键字段查询

          * @param id

          * @return

          */

         @Cacheable

         public T selectByIdAndCache(Object id) {

                  return mapper.selectByPrimaryKey(id);

         }

 

         /**

          * <p>Title: 根据字段查询单表数据</p>

          * <p>Description: </p>

          * @param entity

          * @return

          */

         @Cacheable

         public List<T> selectListAndCache(T entity) {

                  return mapper.select(entity);

         }

 

         /**

          * 查询单表所有数据

          * @return

          */

         @Cacheable

         public List<T> selectListAllAndCache() {

                  return mapper.selectAll();

         }

 

         /**

          * 查询所有对象数量

          * @return

          */

         @Cacheable

         public int selectCountAllAndCache() {

                  return mapper.selectCount(null);

         }

 

         /**

          * 指定几个字段,查询数量

          * @param entity

          * @return

          */

         @Cacheable

         public int selectCountAndCache(T entity) {

                  return mapper.selectCount(entity);

         }

 

         /**

          * <p>Title: 动态条件查询单表</p>

          * <p>Description: </p>

          * @param example

          * @return

          * <p>使用举例(Service类方法中使用):

          * UserExample example = new UserExample();   

         Criteria criteria = example.createCriteria();   

         criteria.andUsernameEqualTo("joe");   

         criteria.andUsernameIsNull();   

         example.setOrderByClause("username asc,email desc");   

         List<?> list = selectByExample(example);   

         相当于:

         select * from user where username = 'joe' and username is null order by username asc,email desc   

          * </p>

          */

         @Cacheable

         public List<T> selectByExampleAndCache(Object example) {

                  return mapper.selectByExample(example);

         }

 

         /**

          *

          * <p>Title: 动态条件查询单表数目</p>

          * <p>Description: </p>

          * @param example

          * @return

          *

          */

         @Cacheable

         public int selectCountByExampleAndCache(Object example) {

                  return mapper.selectCountByExample(example);

         }

}

 

2.      应用

import org.springframework.stereotype.Service;

import com.svw.tbox.tcloud.gateway.dao.GUserTokenMapper;

import com.svw.tbox.tcloud.gateway.entity.GUserToken;

 

/**

 * <p>ClassName: GUserTokenService</p>

 * <p>Description: Token服务</p>

 * <p>Author: hurf</p>

 * <p>Date: 20171119</p>

 */

@Service

publicclass GUserTokenService extends BaseService4Gateway<GUserTokenMapper, GUserToken>{

}

//控制器

@RestController

@RequestMapping("/auth")

@Api(description = "验证服务接口")

publicclass AuthController {

 

    @Autowired

    private GUserTokenService gUserTokenService;

 

    @ApiOperation(value = "新增票剧")

    @ApiImplicitParams({ @ApiImplicitParam(name = "refreshToken", value = "身份票剧", paramType = "query", required = true),

           @ApiImplicitParam(name = "refreshTokenDeadline", value = "身份票剧过期时间", paramType = "query", required = true),

           @ApiImplicitParam(name = "accessToken", value = "访问票据", paramType = "query", required = true),

           @ApiImplicitParam(name = "accessTokenDeadline", value = "访问票剧过期时间", paramType = "query", required = true) })

    @RequestMapping(value = "/tokenAdd", method = RequestMethod.POST)

    public Result tokenAdd(GUserToken entity) {

       return Result.success(gUserTokenService.insertSelective(entity));

    }

3.      访问查询

http://localhost:8200/swagger-ui.html

第一次执行all查询(查询的是数据库):

第二次执行all查询:没有出现查询语句查询缓存


已经存在


1.     使用方式二

@Service

@CacheConfig(cacheNames = "ordertraceid-resource")

public class CacheServiceImpl implements CacheService {

 

    @Autowired

    private IdGenerator idGenerator;

 

    @Override

    @Cacheable(key = "#accountId+'-'+#orderId+'-'+#eventCode+'-ordertraceid-resource'")

    public String getOrderTraceId(String accountId,String orderId, int eventCode){

        return String.valueOf(idGenerator.generate());

    }

    @Override

    @CacheEvict(key = "#accountId+'-'+#orderId+'-'+#eventCode+'-ordertraceid-resource'")

    public void removeOrderTraceId(String accountId,String orderId, int eventCode){

    }

}






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spring Boot集成Redis可以通过以下步骤实现: 1. 添加Redis依赖:在Spring Boot项目的pom.xml文件中添加以下依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 2. 配置Redis连接信息:在application.properties文件中添加以下配置信息: ``` spring.redis.host=redis服务器IP spring.redis.port=redis服务器端口号 spring.redis.password=redis密码 ``` 3. 创建RedisTemplate:在Java代码中创建RedisTemplate对象,并注入到需要使用Redis的类中。 ``` @Configuration public class RedisConfig { @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) { RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(factory); redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class)); redisTemplate.afterPropertiesSet(); return redisTemplate; } } ``` 4. 使用RedisTemplate操作Redis:通过RedisTemplate对象的方法,可以进行各种Redis操作,如set、get、delete等。 以上是Spring Boot集成Redis的基本步骤,具体实现还需根据具体需求进行配置和调整。 ### 回答2: Spring Boot是一个基于Spring框架的快速开发框架,它提供了简化的配置和开箱即用的功能,使得我们可以快速构建和部署应用程序。而Redis是一个高性能的键值对存储数据库,它常被用于缓存和数据存储。 在Spring Boot集成Redis,首先需要引入相关的依赖。可以通过Maven或Gradle来引入spring-boot-starter-data-redis依赖,该依赖会自动引入Redis相关的配置和依赖库。 然后,在配置文件中添加Redis的连接信息。在application.properties或application.yml中,可以配置Redis的主机地址、端口号、密码等信息。 接下来,在需要使用Redis的地方,可以使用@Autowired注解来注入RedisTemplate对象。RedisTemplate是Spring提供的操作Redis的模板类,它封装了常用的操作方法。 使用RedisTemplate,可以通过调用其对应的方法来操作Redis数据库,比如设置键值对、获取键值对、设置过期时间等。 除了RedisTemplate,Spring Boot还提供了RedisCacheManager类用于缓存管理,它可以通过注解@Configuration和@EnableCaching来启用缓存功能。在需要缓存的方法上使用@Cacheable注解,就可以将方法的返回值缓存Redis中,下次调用时可以直接从缓存中获取,提高了性能。 总的来说,集成RedisSpring Boot中,只需要引入依赖、配置连接信息,然后通过RedisTemplate操作Redis数据库,或使用RedisCacheManager进行数据缓存管理就可以了。这样可以简化我们与Redis的交互,提高开发效率和应用性能。 ### 回答3: 在Spring Boot中,集成Redis可以通过以下步骤实现: 1. 在pom.xml文件中添加Redis的依赖库: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 2. 在application.properties或application.yaml文件中配置Redis连接信息: ```properties spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password= ``` 3. 创建一个Redis配置类,用于配置Redis连接工厂: ```java @Configuration @EnableCaching public class RedisConfig extends CachingConfigurerSupport { @Bean @Override public KeyGenerator keyGenerator() { return new KeyGenerator() { @Override public Object generate(Object target, Method method, Object... params) { // 生成缓存的key,可以根据实际需求定制 return ""; } }; } @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) { RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(connectionFactory); // 设置value的序列化方式 redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); // 设置key的序列化方式 redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.afterPropertiesSet(); return redisTemplate; } } ``` 4. 在需要使用Redis的类中,通过注入RedisTemplate来操作Redis: ```java @Autowired private RedisTemplate<String, Object> redisTemplate; public void cacheData(String key, Object value) { redisTemplate.opsForValue().set(key, value); } public Object getData(String key) { return redisTemplate.opsForValue().get(key); } ``` 通过以上步骤,我们就成功在Spring Boot集成Redis,可以方便地使用Redis进行缓存、存储和读取数据。在配置Redis时,我们需要根据实际情况修改host、port和password等配置项。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值