- 博客(39)
- 收藏
- 关注
原创 高频Redis面试题:如何保证Redis和数据库数据一致性
订阅mysql的binlong,在订阅者中,如果发现更新数据请求,则删除响应的缓存,比如使用canal中间件;缺点:高并发场景下,如果多个线程同时执行更新数据库再写缓存操作可能会出现数据库是新值,而缓存中是旧值。缺点:高并发场景下,如果多个线程同时执行更新数据库再写缓存操作可能会出现数据库是新值,而缓存中是旧值。在高可用的系统系统里面,我们追求数据最终一致性的话,我们可以考虑先更新数据库,再去删除缓存。问题:如果数据库中的某条数据放入缓存后,有马上被更新了,那我们应该如何更新缓存?
2024-07-30 18:11:55
324
原创 给你一亿个Redis Keys,如何高效统计?
Set集合的交差的计算复杂度很高,如果数据量很大的情况下,可能会造成Redis的阻塞。那么如何规避阻塞呢?建议如下:1、在Redis集群中选一个从库专门负责聚合统计,这样就不会阻塞主库和其它的从库了。2、将数据交给客户端,有客户端进行聚合统计。本文介绍了统计的几种类型以及应该用什么集合存储,为了方便理解,作者将支持情况和优缺点汇总了一张表格,如下图:Set和Sorted Set支持交集、并集的聚合运算,但是Sorted Set不支差集运算。
2024-07-30 18:07:08
988
原创 数据库的三大范式!!!初学者必看
三大范式是 Mysql数据库所遵循的目的是为了减少冗余,建立结构合理的数据库,从而提高数据存储和使用的性能。三大范式之间是具有的,比如第二范式是在第一范式的基础上建设的、第三范式是在第二范式的基础上建设的。
2024-05-14 17:33:46
226
原创 Java中 final、finally、finalize的区别你知道多少?学习指数满天星!!!
Java中 final、finally、finalize的区别你知道多少?学习指数满天星!!!
2024-05-06 15:46:42
185
原创 NodeJS以及@vue/cli的安装
NodeJS 安装完毕后,会自动配置好环境变量,我们验证一下是否安装成功,通过: node -v。注意:E:\develop\NodeJS 这个目录是NodeJS的安装目录。选择安装到一个,没有中文,没有空格的目录下(新建一个文件夹NodeJS)这个过程中,会联网下载,可能会耗时几分钟,耐心等待。
2023-06-13 18:48:37
375
原创 VS Code 下载安装以及非常好用的插件
vscode不像IDE一样能够直接在浏览器中打开html,而该插件支持快捷键与鼠标右键快速在浏览器中打开html文件,支持自定义打开指定的浏览器,包括:Firefox,Chrome,Opera,IE以及Safari。Vue多功能集成插件,包括:语法高亮,智能提示,emmet,错误提示,格式化,自动补全,debugger。VS Code提供了非常丰富的插件功能,根据你的需要,安装对应的插件可以大大提高开发效率。给括号加上不同的颜色,便于区分不同的区块,使用者可以定义不同括号类型和不同颜色。
2023-06-12 17:20:29
3768
1
原创 第十三章:数据结构-图的进阶(拓扑排序,最小生成树,加权无/有向图,Prim+kruskal算法)
在实际生活中,很多应用相关的图都是有方向性的,最直观的就是网络,可以从A页面通过链接跳转到B页面,那么a和b连接的方向是a->b,但不能说是b->a,此时我们就需要使用有向图来解决这一类问题,它和我们之前学习的无向图,最大的区别就在于连接是具有方向的,在代码的处理上也会有很大的不同。
2023-02-27 14:00:43
1004
原创 第十二章:数据结构-图的入门(图的定义、无向图、图的搜索、路径查找)
在现实生活中,有许多应用场景会包含很多点以及点点之间的连接,而这些应用场景我们都可以用即将要学习的图这种数据结构去解决。地图: 我们生活中经常使用的地图,基本上是由城市以及连接城市的道路组成,如果我们把城市看做是一个一个的点,把道路看做是一条一条的连接,那么地图就是我们将要学习的图这种数据结构。
2023-02-21 15:58:23
221
原创 第十一章:数据结构-并查集以及应用
并查集是一种树型的数据结构 ,并查集可以高效地进行并查集也是一种树型结构,但这棵树跟我们之前讲的二叉树、红黑树、B树等都不一样,这种树的要求比较简单:1. 每个元素都唯一的对应一个结点;2. 每一组数据中的多个元素都在同一颗树中;3. 一个组中的数据对应的树和另外一个组中的数据对应的树之间没有任何联系;4. 元素在树中并没有子父级关系的硬性要求;- 查询元素p和元素q是否属于同一组- 合并元素p和元素q所在的组
2023-02-02 13:44:25
206
原创 第十章:数据结构-平衡树、红黑树
之前我们学习过二叉查找树,发现它的查询效率比单纯的链表和数组的查询效率要高很多,大部分情况下,确实是这样的,但不幸的是,在最坏情况下,二叉查找树的性能还是很糟糕。
2023-02-01 14:26:30
171
原创 第九章:数据结构-队列(最大优先、最小优先、索引优先)
普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在某些情况下,我们可能需要找出队列中的最大值或者最小值,例如使用一个队列保存计算机的任务,一般情况下计算机的任务都是有优先级的,我们需要在这些计算机的任务中找出优先级最高的任务先执行,执行完毕后就需要把这个任务从队列中移除。普通的队列要完成这样的功能,需要每次遍历队列中的所有元素,比较并找出最大值,效率不是很高,这个时候,我们就可以使用一种特殊的队列来完成这种需求,优先队列。
2023-01-31 11:18:29
284
原创 第八章:数据结构(堆的定义、实现以及排序)
堆是计算机科学中一类特殊的数据结构的统称,堆通常可以被看做是一棵完全二叉树的数组对象。它是完全二叉树,除了树的最后一层结点不需要是满的,其它的每一层从左到右都是满的,如果最后一层结点不是满的,那么要求左满右不满。
2023-01-29 10:09:49
177
原创 第七章:数据结构(二叉树入门、遍历以及折纸问题)
之前我们实现的符号表中,不难看出,符号表的增删查操作,随着元素个数N的增多,其耗时也是线性增多的,时间复杂度都是O(n),为了提高运算效率,接下来我们学习树这种数据结构。树是我们计算机中非常重要的一种数据结构,同时使用树这种数据结构,可以描述现实生活中的很多事物,例如家谱、单位的组织架构、等等。 树是由n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。
2023-01-17 17:45:40
128
原创 第六章:数据结构(无序、有序符号表)
符号表最主要的目的就是将一个键和一个值联系起来,符号表能够将存储的数据元素是一个键和一个值共同组成的键值对数据,我们可以根据键来查找对应的值。
2023-01-17 17:39:26
200
原创 第五章:线性表、链表、栈以及队列
我们把生活中的栈的概念引入到计算机中,就是供数据休息的地方,它是一种数据结构,数据既可以进入到栈中,又可以从栈中出去。 栈是一种基于先进后出(FILO)的数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。我们称数据进入到栈的动作为压栈,数据从栈中出去的动作为弹栈。
2023-01-16 09:19:32
198
原创 第四章:高级排序(希尔、归并、快速排序以及排序的稳定性)
之前我们学习过基础排序,包括冒泡排序,选择排序还有插入排序,并且对他们在最坏情况下的时间复杂度做了分析,发现都是O(N^2),而平方阶通过我们之前学习算法分析我们知道,随着输入规模的增大,时间成本将急剧上升,所以这些基本排序方法不能处理更大规模的问题,接下来我们学习一些高级的排序算法,争取降低算法的时间复杂度最高阶次幂。
2023-01-14 10:12:02
412
原创 第三章:简单排序算法(冒泡排序、选择排序、插入排序)
在我们的程序中,排序是非常常见的一种需求,提供一些数据元素,把这些数据元素按照一定的规则进行排序。比如查询一些订单,按照订单的日期进行排序;再比如查询一些商品,按照商品的价格进行排序等等。所以,接下来我们要学习一些常见的排序算法。在java的开发工具包jdk中,已经给我们提供了很多数据结构与算法的实现,比如List,Set,Map等等,都是以API的方式提供,这种方式的好处在于一次编写,多处使用。我们借鉴jdk的方式,也把算法封装到某个类中,那如果是这样,在我们写java代码之前,就需要先进行APi的设计。
2023-01-13 17:54:00
141
原创 第一、二章:大学课程你真的理解嘛?数据结构与算法时间、空间复杂度分析
数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科。
2023-01-13 11:31:10
149
原创 docker下自定义分词器词库
9、然后我们就进入到plugins文件夹下的ik文件(这个文件是我安装es的时候自己建的,你们看看自己的。这个 index.html是我自己建的,为了测试nginx是否正常运行,你们应该都会就不多说了哈【狗头报名】这时候我们进可以进入到nginx文件夹下,可以看到有很多的文件。在该文件夹下的config文件中有个 IKAnalyzer.cfg.xml文件 ,点进去。1、首先要安装nginx,在mydata目录下新建一个文件夹 nginx。8、在es文件下写点东西,写什么都可以,随你心情。
2022-11-16 10:54:03
652
原创 EurekaServerApplication: Failed to retrieve application JMX service URL(已解决)
EurekaServerApplication: Failed to retrieve application JMX service URL(已解决)
2022-09-13 10:38:59
2458
原创 狂神说Mybatis笔记(全网最全)
环境说明:学习前需要掌握:MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类 【Plain Old Java Objects,普通的 Java对象】映射成数据库中的记录。MyBatis 本是apache的一个开源项目ibatis, 2010年这个项目由apache 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github .Mybatis官方
2022-09-10 11:38:58
837
原创 idea运行时报错:Error running ‘XXXApplication‘: Command line is too long.(已解决)
idea运行时报错:Error running 'XXXApplication': Command line is too long.
2022-08-30 16:05:55
321
原创 全网详解(波哥)Java8新特性(Lambda、Stream、LocalDate等)新特性
全网详解(波哥)Java8新特性(Lambda、Stream、LocalDate等)新特性
2022-08-29 23:48:03
520
原创 RocketMQ-Externals:解决找不到rocketmq-console目录问题(已解决)
RocketMQ-Externals:解决找不到rocketmq-console目录问题
2022-08-16 17:39:36
3967
原创 解决RocketMQ在IntelliJ IDEA下报错Unknown lifecycle phase “.test.skip=true“.
解决RocketMQ在IntelliJ IDEA下报错Unknown lifecycle phase “.test.skip=true“.
2022-08-15 23:56:11
792
VSCode安装包以及安装文档
2023-06-12
sun.misc.BASE64Decoder和sun.misc.BASE64Encoder不可用已解决
2023-05-26
seata-server的部分版本下载
2023-03-03
狂神说springboot笔记以及代码
2023-01-29
狂神说SpringMVC笔记及代码
2022-09-17
狂神说mybatis笔记及代码
2022-09-10
全网详解(波哥)Java8新特性(Lambda、Stream、LocalDate等)新特性
2022-09-02
狂神说Spring笔记及代码
2022-08-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人