自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 sql优化

- 优化方式:用代码拼装sql时进行判断,没 where 条件就去掉 where,有where条件就加 and。如下:复合(联合)索引包含a1,b2,c3三列,但SQL语句没有包含索引前置列"a1",按照MySQL联合索引的。如下SQL语句由于索引对列类型为varchar,但给定的值为数值,涉及隐式类型转换,造成不能正确走索引。-- 优化方式:如果是连续数值,可以用between代替。-- 优化方式:可以给字段添加默认值0,对0值进行判断。-- 这种方式是不会走索引的。

2024-07-13 11:34:23 223

原创 击穿,穿透,雪崩

缓存击穿是指某个热点数据在缓存中失效,而有大量并发请求同时到达这个数据时,由于缓存失效,这些请求直接访问数据库,导致数据库瞬时压力激增,可能造成系统崩溃。缓存穿透是指请求的数据既不在缓存中,也不存在于数据库中。每次请求都会去数据库查询,找不到数据后也不会写入缓存,这样恶意的攻击可能会使数据库遭受巨大的压力。缓存雪崩是指大量缓存数据在同一时间过期,导致大量请求同时到达数据库,可能引起数据库瞬时压力过大而崩溃。

2024-06-22 14:55:05 338

原创 深入解析Redis:从基础到高可用性

Redis(Remote Dictionary Server)是一种开源的内存数据结构存储,可以用作数据库、缓存和消息代理。Redis支持多种数据结构,如字符串、哈希、列表、集合、有序集合、位图、HyperLogLog等。由于数据存储在内存中,Redis提供了微秒级的响应时间,被广泛用于对速度要求极高的场景。主从复制是Redis实现数据冗余和负载均衡的一种方式。数据冗余:确保数据的副本存在多个节点上,防止单点故障。读写分离:主节点处理写请求,从节点处理读请求,提高系统的并发能力。备份。

2024-06-22 14:48:36 589

原创 postman接口测试工具

Postman 是一个基于图形用户界面的 API 客户端工具,允许用户发送 HTTP 请求并查看响应。它支持多种请求类型(如 GET、POST、PUT、DELETE 等),并提供了丰富的功能来简化 API 开发和测试过程。Postman 还支持自动化测试和持续集成,使其成为一个全面的 API 管理工具。

2024-06-15 17:05:12 844

原创 SpringBoot的理解笔记

Spring Boot 是 Spring 框架的一个子项目,旨在简化基于 Spring 技术栈的应用开发。通过提供一系列开箱即用的配置和工具,Spring Boot 让开发者能够快速构建、运行和部署生产级的 Spring 应用程序。其目标是减少样板代码、简化配置、提高开发效率,并促进微服务架构的实现。

2024-06-15 17:00:40 885

原创 HashMap底层原理

当 HashMap 中某个桶的链表长度超过一定阈值时(默认是8),链表会转换为红黑树,以提高查找效率。这是因为红黑树的查找和插入操作的时间复杂度是 O(log⁡n)O(\log n)O(logn),而链表的时间复杂度是 O(n)O(n)O(n)。每个桶可以存储一个或多个键值对,如果多个键值对被存储在同一个桶中,它们被组织成一个链表(或红黑树)。:因为在 put() 操作时,会进行哈希值的计算,算出存储下标后,将元素放入对应位置。:当链表长度大于8时,链表的遍历查询速度较慢,所以引入红黑树,提高查找效率。

2024-06-06 20:10:03 407

原创 初识Linux

时间回到 1991 年,一位名叫 Linus Torvalds 的芬兰大学生,在赫尔辛基大学学习期间,想要创建一个自由且开放的操作系统内核。于是,他在一个著名的 BBS(类似于现在的论坛)上发布了 Linux 内核的初始版本,并邀请全球的程序员们一起来改进和开发这个系统。这个开放的邀请信立刻得到了热烈的回应,全球的开发者们纷纷贡献代码,使得 Linux 内核迅速成长。今天,Linux 不仅是服务器和超级计算机的首选操作系统,也是很多嵌入式系统(比如智能电视、路由器)的核心。命令可以显示系统的内存使用情况。

2024-06-01 14:50:15 899

原创 通俗理解git

想象一下,你正在写一篇故事,这篇故事你可能会反复修改,增加新的情节,删除旧的内容。当你决定将新故事线的一些内容融入主线,Git会帮你比较两条故事线的不同,如果遇到同时修改了同一段内容的情况,Git会告诉你:“这里有冲突,需要你决定怎么改。万一哪天你想看看之前的故事版本,Git就像一个时间机器,通过`git log`查看历史,`git checkout`回到过去的某个版本,一切就是这么简单。首先,你创建了一个“故事盒”(仓库),告诉Git:“Git,我这里有个故事要写,你帮我管理一下吧。

2024-05-25 17:38:23 293 1

原创 Vue安装

要安装Vue,你需要先安装Node.js,然后使用npm(Node Package Manager)来安装Vue。下面是安装Vue的步骤:首先从Node.js官网(https://nodejs.org)下载安装包,根据操作系统选择相应的版本进行安装。确认Node.js和npm版本正确后创建全局安装目录和缓存日志目录在nodejs安装的目录创建两个空文件夹:node_cache和node_global。打开cmd窗口,执行如下命令将npm的全局模块目录和缓存目录配置到我们刚才创建的那两个目录。

2024-05-18 18:01:49 187

原创 浅聊人工智能与大数据

随着时间的推移,组织将认识到他们客户的确切需求是什么,甚至基于人工智能的解决方案也可能需要进行巨大的变化,因为客户的需求可能会有所不同。例如,我们考虑这样的情景:一个皮革服装制造商将其服装出口到欧洲,通过从市场上收集数据并通过各种算法进行分析,商家可以识别客户的行为和兴趣,再根据客户的兴趣提供服装。比如,对于任何一个医药公司的数据科学家来说,他不仅要分析客户的需求,还要遵守该地区特定市场的规章制度,调整药物成分为该市场提供最佳选择,机器学习不太可能完成这种任务。由于价格下降,越来越多的公司将采用这种技术。

2024-05-10 19:41:59 719

原创 Java冒泡排序

方法实现了冒泡排序的逻辑。在每一轮比较中,通过两层循环依次比较相邻的元素,如果前面的元素大于后面的元素,则交换它们的位置。首先,比较相邻的两个元素,如果前面的元素大于后面的元素,则交换位置。这样一轮比较下来,最大的元素会被移到数组的末尾。冒泡排序是一种基本的排序算法,其原理是通过重复比较相邻的元素并交换位置来实现排序。接着,对除了已排序的最后一个元素以外的所有元素进行一轮比较,将第二大的元素移到倒数第二个位置。重复进行上述步骤,每一轮比较都将会有一个最大的元素被移到数组的末尾,直到全部元素都被排序。

2024-03-04 17:13:05 139 1

原创 Java中三种基础循环

在Java中,有三种主要的循环结构:for循环、while循环和do-while循环。: for循环是最常用的循环结构,它允许你指定循环次数。: while循环在循环开始之前先判断条件是否成立,只有条件为ture时,才会执行循环体内的代码。while循环只有循环条件部分,没有初始化语句和循环迭代部分,所以需要在循环体内手动改变控制条件所涉及的变量的值,以避免死循环。

2024-03-01 15:28:04 595 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除