SpringBoot配置第三方专业缓存技术Redis

Redis缓存技术

Redis(Remote Dictionary Server)是一个开源的内存中数据结构存储系统,通常用作数据库、缓存和消息中间件。它支持多种数据结构,如字符串、哈希表、列表、集合、有序集合等,并提供了丰富的功能和灵活的配置选项。

Redis 的特点和优势

  1. 内存存储和持久化

    • Redis数据通常存储在内存中,因此访问速度非常快。
    • 可以通过周期性快照和日志追加(append-only file, AOF)方式将数据持久化到磁盘,保证数据安全性和持久性。
  2. 丰富的数据类型

    • Redis支持多种数据结构,如字符串(String)、哈希表(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)等,每种数据结构都带有丰富的操作命令,能够满足不同的应用场景需求。
  3. 原子操作

    • Redis的命令是原子性的,即一个命令的执行不会被其他命令打断,这样可以保证多个操作的一致性。
  4. 丰富的功能

    • 支持事务(Transaction)、发布/订阅(Pub/Sub)、Lua脚本、管道(Pipeline)等高级功能,能够满足复杂的应用需求。
  5. 高性能

    • Redis是单线程的,通过异步方式处理请求,避免了多线程的竞争和上下文切换开销,因此能够提供高吞吐量和低延迟的服务。
  6. 分布式

    • Redis Cluster支持分布式部署,能够自动将数据分片存储在多个节点上,提高了系统的扩展性和容错性。

Redis 在缓存中的应用

  1. 缓存读写速度快

    • Redis适合作为高速缓存存储,将经常访问的数据缓存在内存中,以提高访问速度。
  2. 缓存失效策略

    • Redis支持设置过期时间(TTL),可以为每个键设置生存时间,当超过指定时间后自动删除,从而实现自动过期和释放内存的功能。
  3. 减轻后端数据库压力

    • 通过将频繁访问的数据缓存在Redis中,可以减轻后端数据库的负载,提高系统整体的性能和并发能力。
  4. 分布式缓存

    • 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.Driverurl: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTCusername: rootpassword: 123456devtools:restart:# 设置不参与热部署的文件或文件夹exclude: static/**,public/**,config/application.ymlcache:type: redisredis:host: localhostport: 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: redisredis:use-key-prefix: truecache-null-values: falsekey-prefix: aatime-to-live: 10s
redis:host: localhostport: 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/28546.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4.1 初探Spring Boot

初探Spring Boot实战概述 Spring Boot简介 Spring Boot是一个开源的Java框架&#xff0c;由Pivotal团队&#xff08;现为VMware的一部分&#xff09;开发&#xff0c;旨在简化Spring应用程序的创建和部署过程。它通过提供一系列自动化配置、独立运行的特性和微服务支持&#…

类加载的初始化阶段的奥秘

一、概述 初始化阶段是类加载机制&#xff08;加载&#xff0c;链接&#xff08;验证&#xff0c;准备&#xff0c;解析&#xff09;&#xff0c;初始化&#xff09;的最后一步。在准备阶段已经为类变量赋过一次值&#xff08;默认为0或null&#xff09;。在初始化阶段&#xf…

HTML和CSS基础(一)

前言 HTML&#xff08;HyperText Markup Language&#xff09;是一种用于创建网页的标准标记语言。它由各种标签组成&#xff0c;这些标签定义了网页的结构和内容。HTML的早期形式诞生于1989年&#xff0c;由CERN的物理学家Tim Berners-Lee发明&#xff0c;最初用于在科学家之…

js 刷题常用方法

Object 对象共有 toString()valueOf()obj.keys()obj.values()obj.entries()for of 循环…扩展运算符Array.of()Array.from() 数组使用时 toString 返回以逗号分隔的字符串valueOf 返回数组本身 Array 数组 创建数组 Array.from(可迭代对象)Array.of(传入一组参数) let arr…

C语言 | Leetcode C语言题解之第160题相交链表

题目&#xff1a; 题解&#xff1a; struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {if (headA NULL || headB NULL) {return NULL;}struct ListNode *pA headA, *pB headB;while (pA ! pB) {pA pA NULL ? headB : pA->ne…

windows11 x64 23H2 企业纯净版2024.6.16

闲来无事试安装了下da_nao_yan的 【6月12日更新】Windows11 22631.3737企业版 23H2 自用优化版 &#xff08;原版地址&#xff1a;https://bbs.pcbeta.com/viewthread-1985546-1-1.html&#xff09;&#xff0c;感觉比原版流畅多了&#xff0c;重新按照自己习惯封装了下&#x…

C++作业第四天

#include <iostream> using namespace std; class Per { private: string name; int age; int *high; double *weight; public: //构造函数 Per() { cout << "Per的无参构造" << endl; } Per(str…

Python获取一个列表的全组合

numList [1, 3, 5, 7, 9] from itertools import combinationsfor i in range(1, len(numList) 1): # xrange will return the values 1,2,3,4 in this loopprint(list(combinations(numList, i)))输出&#xff1a; [(1,), (3,), (5,), (7,), (9,)] [(1, 3), (1, 5), (1, 7)…

通讯的一些基本概念 -网卡 -网段 -网桥 -路由表

网卡&#xff08;Network Interface Card, NIC&#xff09; 网卡是安装在计算机或其他设备上的硬件组件&#xff0c;它允许设备通过有线或无线方式连接到计算机网络。网卡工作在OSI模型的数据链路层&#xff08;第二层&#xff09;和物理层&#xff08;第一层&#xff09;&…

排序——希尔排序

希尔排序实际上是插入排序的优化&#xff0c;所以要先介绍插入排序。 目录 插入排序 思想 演示 代码实现 总结 希尔排序 思想 演示 代码 总结 插入排序 思想 又称直接插入排序。它的基本思想是将一个值插入到一个有序序列中。直至将所有的值都插入完。 演示 假设数…

Web前端开发的过程:深入剖析与精彩演绎

Web前端开发的过程&#xff1a;深入剖析与精彩演绎 在数字化时代&#xff0c;Web前端开发作为构建用户界面的关键环节&#xff0c;其重要性不言而喻。这一过程涉及众多技术细节和创意构思&#xff0c;充满了挑战与机遇。本文将从四个方面、五个方面、六个方面和七个方面&#…

Java并发编程三大神器之Semaphore

Java并发编程三大神器之Semaphore 1、Semaphore是什么2、Semaphore小试牛刀3、Semaphore和CountDownLatch组合使用4、Semaphore常用方法5、Semaphore 结语 1、Semaphore是什么 Semaphore 是一个计数信号量&#xff0c;是JDK1.5引入的一个并发工具类&#xff0c;位于java.util.…

实验五:分枝限界法

实验五&#xff1a;分枝限界法 【实验目的】 应用分枝限界法的算法设计思想求解单源最短路径问题。 【实验内容与要求】 采用分支限界法编程求源点0到终点6的最短路径及其路径长度。 要求完成&#xff1a;⑴算法描述⑵写出程序代码⑶完成调试⑷进行过程与结果分析。 【实验…

logTrick

贴一下灵神的题解里面的解释~ 就是一种优化策略&#xff0c;logtrick class Solution { public:int minimumDifference(vector<int>& nums, int k) {int res 0x3f3f3f3f;int n nums.size();for(int i0;i<n;i){res min(res,abs(nums[i]-k));for(int j i-1;j&g…

编程0基础学难吗:深度剖析与实用指南

编程0基础学难吗&#xff1a;深度剖析与实用指南 编程&#xff0c;这个看似神秘而高深的领域&#xff0c;对于许多零基础的学习者来说&#xff0c;往往伴随着一系列的疑问和困惑。那么&#xff0c;编程零基础学习究竟难不难呢&#xff1f;本文将从四个方面、五个方面、六个方面…

算法题解记录28+++对称二叉树(百日筑基)

一、题目描述&#xff1a; 题目难度&#xff1a;简单 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true 分割线 示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,nul…

SpringAI学习及搭建AI原生应用

文章目录 一、SpringAI是什么二、准备工作1.GPT-API-free2.AiCore3.eylink 三、对话案例实现1.创建项目2.实现简单的对话 四、聊天客户端ChatClient1.角色预设2.流式响应3.call和stream的区别 五、聊天模型提示词提示词模板 六、图像模型(文生图)七、语音模型1.文字转语音(文生…

【C语言】分支与循环(下)

目录 6. while 循环 7. for 循环 8. do-while 循环 9. break 和 continue 循环 10. 循环的嵌套 11. goto 语句 正文开始—— 6. while 循环 C语言提供了三种循环&#xff0c;while 就是其中一种。 while 语句的语法结构与 if 语句非常相似。 6.1 if 和 wh…

ubuntu中安装docker并换源

使用 Ubuntu 的仓库安装 Docker sudo apt update现在&#xff0c;你可以使用以下命令在 Ubuntu 中安装 Docker 以及 Docker Compose&#xff1a; sudo apt install docker.io docker-composeDocker 包被命名为 docker.io&#xff0c;因为在 Docker 出现之前就已经存在一个名为…

hashlib的简单使用

在 Python 中&#xff0c;hashlib 模块提供了常见的哈希算法&#xff0c;如 SHA1, SHA256, MD5 等。在安全性相关的应用中&#xff0c;比如用户密码存储&#xff0c;hashlib 通常用于生成哈希值以确保密码存储的安全性&#xff0c;因为直接存储用户密码是不安全的。 以下是如何…