day50_java_基础巩固

简介: 自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!

redis 的持久化:

Redis 提供了两种持久化的方式,分别是 RDB(Redis DataBase)和 AOF(

AppendOnly File)。

RDB,简而言之,就是在不同的时间点,将 redis 存储的数据生成快照并存储到磁盘

等介质上。

AOF,则是换了一个角度来实现持久化,那就是将 redis 执行过的所有写指令记录下

来,在下次 redis 重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现

数据恢复了。

RDB 和 AOF 两种方式也可以同时使用,在这种情况下,如果 redis 重启的话,则会

优先采用 AOF 方式来进行数据恢复,这是因为 AOF 方式的数据恢复完整度更高。

Redis 的缺点:

缓存和数据库双写一致性问题

一致性的问题很常见,因为加入了缓存之后,请求是先从 redis 中查询,如果 redis 中

存在数据就不会走数据库了,如果不能保证缓存跟数据库的一致性就会导致请求获取到的数

据不是最新的数据。

解决方案:

1、编写删除缓存的接口,在更新数据库的同时,调用删除缓存

的接口删除缓存中的数据。这么做会有耦合高以及调用接口失败的情况。

2、消息队列:ActiveMQ,消息通知。

缓存的并发竞争问题

并发竞争,指的是同时有多个子系统去 set 同一个 key 值。

解决方案:

1、最简单的方式就是准备一个分布式锁,大家去抢锁,抢到

锁就做 set 操作即可

缓存雪崩问题

缓存雪崩,即缓存同一时间大面积的失效,这个时候又来了一波

请求,结果请求都怼到数据库上,从而导致数据库连接异常。

解决方案:

1、给缓存的失效时间,加上一个随机值,避免集体失效。

2、使用互斥锁,但是该方案吞吐量明显下降了。

3、搭建 redis 集群。

缓存击穿问题

缓存穿透,即黑客故意去请求缓存中不存在的数据,导致所有的请求都怼到数据库上,

从而数据库连接异常。

解决方案:

1、利用互斥锁,缓存失效的时候,先去获得锁,得到锁了,

再去请求数据库。没得到锁,则休眠一段时间重试

2、采用异步更新策略,无论 key 是否取到值,都直接返回,

value 值中维护一个缓存失效时间,缓存如果过期,异步起一个线程

去读数据库,更新缓存。

相关文章
|
2月前
|
人工智能 前端开发 测试技术
Cursor 把内部代码审查工具放出来了,AI 写代码之后,质量风险变了
AI 编程提速明显,但代码“能跑”不等于“健康”。Cursor Team Kit 揭示新质量风险:复杂度飙升、结构混乱、可测性下降——问题正前移至PR阶段。测试需从功能验证转向质量门禁,在代码入主干前拦截可维护性与可测性风险。
|
缓存 PHP 芯片
Mac M1芯片brew阿里云源,安装PHP时出的问题解决
安装时有两个文件404没有下载下来,它是回地官方源下载,但安装时名字还是用阿里的名字,所以打不到包,手动到缓存目录里改的。改成安装需要的包的名字。
1400 0
|
5月前
|
API Docker 异构计算
大模型应用:大模型本地化部署与API调用:打包迁移到服务器的多种方式实践.47
本文详解大模型从本地运行到云端API服务的全链路部署:涵盖硬件要求(GPU/CPU/内存)、软件环境(Python/FastAPI/Transformers)、模型选型(Qwen/ChatGLM等),并提供脚本部署、EXE打包(PyInstaller)和Docker容器化三种方案,支持局域网调用与接口文档自动生成,助力零基础用户快速实现“开箱即用”的稳定API服务。
2387 25
|
6月前
|
人工智能 自然语言处理 网络安全
2026年部署OpenClaw(Clawdbot)及配置阿里云百炼Coding Plan AI 编码订阅计划保姆级教程
在AI自动化与智能编码飞速发展的2026年,OpenClaw(前身为Clawdbot、Moltbot)凭借自然语言驱动、任务自动化、多工具集成的核心优势,成为个人开发者与企业团队提升效率的必备工具。其无需复杂编程基础,即可实现“说需求、写代码、出结果”的全流程自动化,而阿里云为其量身打造的专属部署方案,更是彻底打破了开源工具的技术门槛,搭配阿里云百炼Coding Plan AI编码订阅计划,可进一步解锁高级编码能力,实现从“对话型AI”到“可编程智能体”的升级。
2089 6
|
10月前
|
机器学习/深度学习 缓存 自然语言处理
【万字长文】大模型训练推理和性能优化算法总结和实践
我们是阿里云公共云 AI 汽车行业大模型技术团队,致力于通过专业的全栈 AI 技术推动 AI 的落地应用。
3780 40
【万字长文】大模型训练推理和性能优化算法总结和实践
|
11月前
|
自然语言处理 监控 API
小红书爆文解码:用API分析互动数据,精准指导创作方向
在内容为王时代,爆文背后有科学公式!通过小红书API抓取百万笔记数据,提炼出点赞转化率、收藏价值系数、评论情感值三大核心指标,揭秘爆文特征不等式与内容元素矩阵,手把手教你用数据驱动创作,实现从0到百万曝光的逆袭!
1288 0
|
机器学习/深度学习 算法 TensorFlow
【Python机器学习】梯度下降法的讲解和求解方程、线性回归实战(Tensorflow、MindSpore平台 附源码)
【Python机器学习】梯度下降法的讲解和求解方程、线性回归实战(Tensorflow、MindSpore平台 附源码)
743 0
|
机器学习/深度学习 数据采集 人工智能
《解锁AI时代必备技能,抢占未来先机》
在科技飞速发展的今天,AI已融入生活的方方面面。掌握AI时代的必备技能尤为重要,包括编程与数据处理、机器学习与深度学习、创新与协作及批判性思维与持续学习。编程语言如Python是关键工具,数据处理能力不可或缺;深入理解机器学习和深度学习能助你成为AI高手;创新思维和团队协作精神助力突破;批判性思维和持续学习确保不被淘汰。掌握这些技能,抓住机遇,实现自我价值,在AI时代乘风破浪。
736 0
【HarmonyOS】HMRouter使用详解(二)
HMRouter中使用HMRouterMgr的静态方法push()和replace()来实现路由跳转。使用pop()方法来实现页面返回 * push :目标页面不会替换当前页,而是插入页面栈。可以使用pop实现页面的返回操作。 * replace:目标页面会替换当前页,并销毁当前页。这样可以释放当前页的资源,并且无法返回到当前页。 * pop:返回页面栈的上一个页面,skipedLayerNumber 页面返回的层级数量,默认为0,表示返回上一级,1表示跳过一级页面返回
896 8
【HarmonyOS】HMRouter使用详解(二)
|
JavaScript C# 开发工具
20款VS Code实用插件推荐
20款VS Code实用插件推荐
819 0

热门文章

最新文章