Redis以及Spring Data Redis

Redis以及Spring Data Redis

本文是为了使用redis以及Spring Data Redis,大部分应用于资源上传以及确保定时清理无用资源,主要针对于springboot项目

Redis 简介

Redis(Remote Dictionary Server)是一个开源的内存数据结构存储系统,它可以用作数据库、 缓存和消息中间件。Redis 支持多种数据结构,包括字符串(String)、哈希(Hash)、列表 (List)、集合(Set)、有序集合(Sorted Set)和位图(Bitmap)等。

Redis 主要有以下特点:
1. 内存存储:Redis 将数据存储在内存中,因此读写速度非常快。它还可以支持持久化将
数据写入磁盘,以保证数据的持久性。
2. 数据结构丰富:Redis 提供多种数据结构,使得开发者能够更灵活地处理数据。例如,
可以将字符串保存为键值对,将哈希用于保存对象属性,将列表用于保存有序的数据集
合等。
3. 高效的缓存系统:由于 Redis 对于读写操作非常快速,因此它经常被用作缓存系统来
提供高速访问数据的能力。可以将频繁访问的数据保存在 Redis 中,以提高应用程序
的性能。
4. 分布式支持:Redis 提供了分布式特性,可以将数据分散存储在多个节点上,实现高可
用性和横向扩展。
5. 强大的数据操作功能:Redis 提供了丰富的数据操作功能,如对字符串进行存取操作、
对哈希进行字段的增删改查、对列表和集合进行元素添加和删除、对有序集合进行排序
操作等。它还支持事务操作和发布订阅模式。
6. 支持多种编程语言:Redis 提供了多种编程语言的客户端,方便开发者使用。目前支持
的编程语言包括 JavaPythonC#、JavaScript 等。
总体来说,Redis 是一个性能高效、可扩展且功能强大的内存数据存储系统,适合用于缓存、
实时数据分析、消息传递等场景。它的简单性和高性能使得它成为很多应用程序的首选解决
方案之一。

Redis配置

 meven依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
 </dependency>

#redis 配置
spring.redis.host=localhost
spring.redis.port=6379
       

Spring Data Redis 简介

Spring Data Redis 是一个用于与 Redis 数据库交互的 Spring 框架模块。它提供了简化的数 据访问,通过使用注解和模板(Template)的方式来操作 Redis 数据库。 使用 Spring Data Redis,你可以通过定义数据模型的方式来映射 Redis 的数据结构,包括字 符串(String)、列表(List)、哈希(Hash)、集合(Set)和有序集合(Sorted Set)等。它还 提供了丰富的 API,用于进行 CRUD 操作、基于 key-value 的查询和聚合操作等。

以下是 Spring Data Redis 的一些特性和用法:
1. 注解驱动的开发:使用注解来定义 Redis 数据模型,简化对象与数据的映射。
2. RedisString 数据结构支持:通过使用 StringRedisTemplateRedisTemplate,你可
以执行关于字符串的操作,如设置、获取和删除等。
3. RedisHash 数据结构支持:使用 @RedisHash 注解来将对象映射为 RedisHash
数据结构,可以方便地进行增删改查。
4. RedisList 数据结构支持:通过 ListOperations 接口来操作 Redis 的列表数据结构,
如向列表中添加元素、获取列表的长度和范围查询等。
5. RedisSet 数据结构支持:使用 SetOperations 接口可以对 Redis 的集合进行添加、
删除、查询等操作。
6. RedisSorted Set 数据结构支持:通过 ZSetOperations 接口操作 Redis 的有序集合,
可以进行成员的添加、删除、排序和范围查询等操作。
7. 缓存支持:Spring Data Redis 还可以作为 Spring 的缓存模块使用,提供了对 Redis 作
为缓存存储的支持,可以通过注解方式实现数据缓存,提高系统的性能。
Spring Data Redis 简化了与 Redis 数据库交互的开发,提供了更便捷的 API 和注解驱动的
开发方式。它与其他 Spring 模块无缝集成,使得在 Spring 应用中使用 Redis 变得更加轻
松。
    

定时任务介绍

定时任务是企业开发中很常用的,比如定时推送一些接口数据,在 java 中实现定时任务的 方法有 Spring Task、Quartz 等等框架,也有 JDK 自带的 ScheduledExecutorService、Timer。 Quartz 框架比较复杂,读者可以参考官网学习。 Spring Task 是 Spring3.0 以后自带的 task,可以将它看成一个轻量级的 Quartz,而且使用起来 比 Quartz 简单许多。

SpringTask 简介

Spring Task 不是独立的项目,是 spring-context 模块下提供的定时任务工具,是 Spring3.0 以 后自带的 task,可以将它看成一个轻量级的 Quartz。 Spring Task(也称为 Spring 定时任务)是 Spring 框架提供的一种用于调度和执行定时任务 的模块。它可以帮助开发者在应用程序中方便地创建和管理定时任务,例如定期执行某个方 法、定时发送邮件、数据清理等。 使用 Spring Task 可以开发一个或者多个定时任务,每个定时任务可以单独指定执行的时间, 例如每隔 1 小时执行一次、每个月第一天上午 10 点执行一次、每个月最后一天下午 5 点执 行一次等。

Cron 表达式

这种表达式称为 cron 表达式,通过 cron 表达式可以灵活的定义出符合要求的程序执行的时 间。本小节我们就来学习一下 cron 表达式的使用方法。如下图:
在这里插入图片描述

cron 表达式分为七个域,之间使用空格分隔。其中最后一个域(年)可以为空。每个域都
有自己允许的值和一些特殊字符构成。使用这些特殊字符可以使我们定义的表达式更加灵活。
下面是对这些特殊字符的介绍:
逗号(,):指定一个值列表,例如使用在月域上 1,4,5,7 表示 1 月、4 月、5 月和 7 月
横杠(-):指定一个范围,例如在时域上 3-6 表示 3 点到 6 点(即 3 点、4 点、5 点、6 点)
星号(*):表示这个域上包含所有合法的值。例如,在月份域上使用星号意味着每个月都会
触发
斜线(/):表示递增,例如使用在秒域上 0/15 表示每 15 秒
问号(?):只能用在日和周域上,但是不能在这两个域上同时使用。表示不指定
井号(#):只能使用在周域上,用于指定月份中的第几周的哪一天,例如 6#3,意思是某月
的第三个周五 (6=星期五,3 意味着月份中的第三周)
L:某域上允许的最后一个值。只能使用在日和周域上。当用在日域上,表示的是在月域上
指定的月份的最后一天。用于周域上时,表示周的最后一天,就是星期六
W:W 字符代表着工作日 (星期一到星期五),只能用在日域上,它用来指定离指定日的最
近的一个工作日
前面介绍了 cron 表达式,但是自己编写表达式还是有一些困难的,我们可以借助一些 cron
表达式在线生成器来根据我们的需求生成表达式即可。
网址:https://cron.qqe2.com/

在这里插入图片描述

`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

十一落

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

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

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

打赏作者

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

抵扣说明:

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

余额充值