springboot中使用redis的方法代码详解
​redis 作为一个高性能的内存数据库,如果不会用就太落伍了,之前在 node.js 中用过 redis,本篇记录如何将 redis 集成到 spring boot 中。感兴趣的朋友跟随小编一起看看吧 在Spring Boot中集成Redis作为高速缓存数据库是一个常见的实践,特别是在构建高性能的微服务架构时。Redis因其内存存储和高效的数据结构而受到欢迎。本文将详细介绍如何在Spring Boot 2.1.3版本中集成Redis,并展示两种使用Redis的方法:通过操作类和使用注解。 为了安装Redis,我们可以利用Docker容器化技术。创建一个`docker-compose.yml`文件,配置如下: ```yaml version: "2" services: redis: container_name: redis image: redis:3.2.10 ports: - "6379:6379" ``` 运行`docker-compose up -d`命令启动Redis服务。确保你的系统已经安装了Docker和Docker Compose。 接下来,我们要在Spring Boot项目中集成Redis。更新`pom.xml`文件,添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <exclusions> <exclusion> <groupId>io.lettuce</groupId> <artifactId>lettuce-core</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </dependency> ``` 这里我们排除了默认的Lettuce连接池,转而使用Jedis。Jedis是一个流行的Java Redis客户端,适合简单场景。 然后,在`application.properties`或`application.yml`中配置Redis连接信息: ```properties spring.cache.type=redis spring.redis.database=0 spring.redis.host=192.168.226.5 spring.redis.port=6379 spring.redis.password=your_password spring.redis.timeout=1000ms ``` 配置Jedis连接池: ```properties spring.redis.jedis.pool.max-active=8 spring.redis.jedis.pool.max-wait=5000ms spring.redis.jedis.pool.max-idle=8 spring.redis.jedis.pool.min-idle=0 ``` 为了启用缓存功能,创建一个名为`RedisConfig`的配置类,并实现`CachingConfigurerSupport`接口: ```java @Configuration @EnableCaching public class RedisConfig extends CachingConfigurerSupport { // ... @Bean public CacheManager cacheManager(RedisConnectionFactory connectionFactory) { RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig() // 配置缓存默认过期时间 .entryTtl(Duration.ofSeconds(3600)); return RedisCacheManager.builder(connectionFactory) .cacheDefaults(redisCacheConfiguration) .build(); } // ... } ``` 现在,你可以通过自定义操作类来与Redis交互,例如创建一个`RedisService`: ```java @Service public class RedisService { @Autowired private StringRedisTemplate stringRedisTemplate; public void set(String key, String value) { stringRedisTemplate.opsForValue().set(key, value); } public String get(String key) { return stringRedisTemplate.opsForValue().get(key); } // 其他操作... } ``` 此外,Spring Boot还提供了注解驱动的缓存支持。例如,你可以使用`@Cacheable`、`@CacheEvict`和`@CachePut`等注解来控制缓存行为: ```java @Service public class UserService { @Cacheable(value = "users", key = "#id") public User getUserById(Long id) { // 查询数据库并返回User对象 } @CacheEvict(value = "users", key = "#id") public void deleteUserById(Long id) { // 删除用户 } @CachePut(value = "users", key = "#user.id") public User updateUser(User user) { // 更新用户并返回更新后的User对象 } } ``` 通过这种方式,你可以轻松地在Spring Boot应用中利用Redis进行数据缓存,提高服务性能。请根据实际情况调整配置和代码,以适应你的项目需求。
- 粉丝: 2
- 资源: 921
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助