Redis缓存技术
Redis(Remote Dictionary Server)是一个开源的内存中数据结构存储系统,通常用作数据库、缓存和消息中间件。它支持多种数据结构,如字符串、哈希表、列表、集合、有序集合等,并提供了丰富的功能和灵活的配置选项。
Redis 的特点和优势
-
内存存储和持久化:
- Redis数据通常存储在内存中,因此访问速度非常快。
- 可以通过周期性快照和日志追加(append-only file, AOF)方式将数据持久化到磁盘,保证数据安全性和持久性。
-
丰富的数据类型:
- Redis支持多种数据结构,如字符串(String)、哈希表(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)等,每种数据结构都带有丰富的操作命令,能够满足不同的应用场景需求。
-
原子操作:
- Redis的命令是原子性的,即一个命令的执行不会被其他命令打断,这样可以保证多个操作的一致性。
-
丰富的功能:
- 支持事务(Transaction)、发布/订阅(Pub/Sub)、Lua脚本、管道(Pipeline)等高级功能,能够满足复杂的应用需求。
-
高性能:
- Redis是单线程的,通过异步方式处理请求,避免了多线程的竞争和上下文切换开销,因此能够提供高吞吐量和低延迟的服务。
-
分布式:
- Redis Cluster支持分布式部署,能够自动将数据分片存储在多个节点上,提高了系统的扩展性和容错性。
Redis 在缓存中的应用
-
缓存读写速度快:
- Redis适合作为高速缓存存储,将经常访问的数据缓存在内存中,以提高访问速度。
-
缓存失效策略:
- Redis支持设置过期时间(TTL),可以为每个键设置生存时间,当超过指定时间后自动删除,从而实现自动过期和释放内存的功能。
-
减轻后端数据库压力:
- 通过将频繁访问的数据缓存在Redis中,可以减轻后端数据库的负载,提高系统整体的性能和并发能力。
-
分布式缓存:
- Redis Cluster可以实现分布式缓存,通过数据分片和副本机制提高缓存的可扩展性和可靠性。
总结
Redis作为一种高性能、多功能的内存中数据存储系统,不仅适合作为缓存使用,还可以作为数据库和消息中间件使用。它的特点包括快速访问、丰富的数据结构、高度可扩展性和强大的功能,因此被广泛应用于各种大规模应用和系统中,尤其在需要快速响应和高并发的场景下表现突出。
首先我们导入redis的坐标
<!-- redis的依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
我们springboot的yml配置里修改一下就行
server:
port: 8080
#下面这些内容是为了让MyBatis映射
#指定Mybatis的Mapper文件
# 专门用来配置的对象datasource
spring:
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC
username: root
password: 123456
devtools:
restart:
# 设置不参与热部署的文件或文件夹
exclude: static/**,public/**,config/application.yml
cache:
type: redis
redis:
host: localhost
port: 6379
# 配置mybatis-plus
mybatis-plus:
global-config:
db—config:
table-prefix: tbl_
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
启动redis
用postman发起请求
获取了缓存
去redis服务器去查看一下
查询到了数据
就是用redis帮忙存储到了数据
进行其他配置
cache:
type: redis
redis:
use-key-prefix: true
cache-null-values: false
key-prefix: aa
time-to-live: 10s
redis:
host: localhost
port: 6379
配置其他信息
可以进行各种操作
进行了验证操作
我们在做Ehcache的时候要配置文件
而redis不需要
因为我们在yml里面直接进行了配置
个人号推广
博客主页
多多!-CSDN博客
Web后端开发
https://blog.csdn.net/qq_30500575/category_12624592.html?spm=1001.2014.3001.5482
Web前端开发
https://blog.csdn.net/qq_30500575/category_12642989.html?spm=1001.2014.3001.5482
数据库开发
https://blog.csdn.net/qq_30500575/category_12651993.html?spm=1001.2014.3001.5482
项目实战
https://blog.csdn.net/qq_30500575/category_12699801.html?spm=1001.2014.3001.5482
算法与数据结构
https://blog.csdn.net/qq_30500575/category_12630954.html?spm=1001.2014.3001.5482
计算机基础
https://blog.csdn.net/qq_30500575/category_12701605.html?spm=1001.2014.3001.5482
回忆录
https://blog.csdn.net/qq_30500575/category_12620276.html?spm=1001.2014.3001.5482