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里面直接进行了配置