SpringBoot整合redis缓存

一、redis概述,什么是redis

       1.Redis是一个开源的内存数据存储系统、也是c语言编写的非关系型数据库,以键值对的形式储存数据,可以用作数据库、缓存、消息中间件等,具有高性能、可扩展性和灵活性等特点。Redis支持多种数据类型,如String、Hash、List、Set、ZSet集合等,能够满足不同场景的数据存储需求。 Redis的数据存储在内存中,因此访问速度非常快,且可以配置成持久化存储到磁盘中(RDB和AOF),以便数据不丢失。Redis还支持主从复制、分布式、事务等功能,使其成为互联网企业常用的数据存储方案之一。

二、怎么使用redis

     1.可以从redis官网上下载相应的安装包

     2.安装包下载完成将文件解压到一个文件夹里面里面有redis-cli.exe和redis-server.exe

     3.redis-server.exe是redis服务端的可执行文件,在Windows系统下使用。redis-server.exe用于启动redis服务器实例,提供redis服务,以满足应用程序对Redis的访问需求,在文件夹上面输入cmd进入终端,输入指令redis-server.exe redis.windows.conf启动redis,默认端口号为6379

     4.redis-cli.exe是redis命令行界面的可执行文件,在Windows系统下使用。redis-cli.exe能够让用户通过命令行方式与redis服务器进行交互,执行各种redis命令,包括增删改查等操作。

三、SpringBoot整合redis

1.导入SpringBoot自带的redis依赖

<!-- 导入redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

2.配置yml

  redis:
    database: 0
    host: 127.0.0.1
    port: 6379
    password: 123456
    jedis:
      pool:
        max-wait: 2000ms
        max-active: 8

3.SpringBoot给我们提供了redis的基本API-RedisTemplate,通过RedisTemplate可以方便地操作redis服务器中的数据,Spring redis支持的存储类型和对应的操作方法如下:

@Autowired
private RedisTemplate<Object,Object> redisTemplate;
@Test
public void saveDataTest() throws Exception {
// 创建数据对象
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("value", "yy");
dataMap.put("time", LocalDateTime.now().format((DateTimeFormatter.ofPattern ("yyyy-MM-dd"))));
// 存储数据
redisTemplate.opsForValue().set("yy", dataMap);
}

1. 字符串(String)

   - 存储:redisTemplate.opsForValue().set(key, value)
   - 获取:redisTemplate.opsForValue().get(key)
   - 其他操作:如设置过期时间、自增等,可参考RedisTemplate中opsForValue()方法的其他操作。

2. 哈希(Hash)

   - 存储:redisTemplate.opsForHash().put(hash, field, value)
   - 获取:redisTemplate.opsForHash().get(hash, field)
   - 其他操作:如获取所有键值对、删除键值对等,可参考RedisTemplate中opsForHash()方法的其他操作。

3. 列表(List)

   - 存储:redisTemplate.opsForList().rightPush(listKey, value)/leftPush(listKey, value)
   - 获取:redisTemplate.opsForList().range(listKey, start, end)
   - 其他操作:如删除指定元素、根据下标获取元素、获取列表长度等,可参考RedisTemplate中opsForList()方法的其他操作。

4. 集合(Set)

   - 存储:redisTemplate.opsForSet().add(setKey, value)
   - 获取:redisTemplate.opsForSet().members(setKey)
   - 其他操作:如集合求交集、并集、差集等,可参考RedisTemplate中opsForSet()方法的其他操作。

5. 有序集合(Sorted Set)

   - 存储:redisTemplate.opsForZSet().add(zsetKey, value, score)
   - 获取:redisTemplate.opsForZSet().range(zsetKey, start, end)
   - 其他操作:如根据分数范围获取元素、获取有序集合长度等,可参考RedisTemplate中opsForZSet()方法的其他操作。

以上仅列举了一部分常用的操作方法,RedisTemplate还支持其他数据类型的操作(如地理位置类型GeospatialOps),具体可参考RedisTemplate API文档。

4.SpringBoot框架为我们提供了一个技术SpringCache

      Spring Cache是Spring框架提供的一套缓存解决方案,它提供了一些注解,用于在方法上声明缓存策略,以下是常用的注解:

     1. @Cacheable:声明方法需要被缓存,并指定缓存名称(value)、缓存key(key)和缓存条件(condition)。
   
     2. @CachePut:声明方法需要被缓存,但是每次方法执行后都会缓存结果,适合用于更新缓存数据的场景。

     3. @CacheEvict:表示从缓存中删除一个或多个项。可以使用该注解在方法执行前清除缓存(beforeInvocation = true)、方法执行后清除缓存(beforeInvocation = false)或者根据特定条件来清除缓存。

     4. @Caching:允许在方法上方声明多个Spring Cache注解(如@CacheEvict和@CachePut),以修饰方法的缓存行为。

     5. @CacheConfig:该注解可以在类或方法级别上声明缓存的一些公共设置,如公共的缓存名称和缓存管理器等。

     6. @EnableCaching:在Spring应用程序上下文中启用缓存管理器。

     以上注解是Spring Cache中比较常用的一些注解,通过使用这些注解,我们可以方便地进行缓存相关的操作。

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Spring Boot提供了很方便的方式来整合Redis缓存。下面是使用Spring Boot整合Redis缓存的步骤: 1. 添加Redis依赖:在你的`pom.xml`文件中添加Redis依赖。可以使用下面的依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 2. 配置Redis连接信息:在`application.properties`(或`application.yml`)文件中配置Redis连接信息,包括主机、端口、密码等。示例配置如下: ```properties spring.redis.host=your_redis_host spring.redis.port=your_redis_port spring.redis.password=your_redis_password ``` 3. 创建缓存配置类:创建一个Java类,用于配置Redis缓存。可以使用`@EnableCaching`注解开启缓存功能,以及使用`@Configuration`注解将该类声明为配置类。示例代码如下: ```java @Configuration @EnableCaching public class RedisCacheConfig { @Bean public RedisCacheConfiguration cacheConfiguration() { return RedisCacheConfiguration.defaultCacheConfig() .disableCachingNullValues(); } @Bean public RedisCacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) { RedisCacheManager.RedisCacheManagerBuilder builder = RedisCacheManager.RedisCacheManagerBuilder .fromConnectionFactory(redisConnectionFactory); return builder.build(); } } ``` 4. 使用缓存注解:在你的Service层的方法上使用Spring缓存注解来启用缓存功能。例如,可以使用`@Cacheable`注解来缓存方法的返回结果。示例代码如下: ```java @Service public class UserService { @Autowired private UserRepository userRepository; @Cacheable("users") public User getUserById(Long id) { return userRepository.findById(id).orElse(null); } } ``` 这是一种简单的方式来使用Spring Boot整合Redis缓存。你可以根据自己的需求进一步配置和使用Redis缓存功能。希望能对你有所帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好似少年的一场梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值