08 2021 档案
摘要:大家好,今天我们来聊一聊flink的Watermark机制。 这也是flink系列的的第一篇文章,如果对flink、大数据感兴趣的小伙伴,记得点个关注呀。 背景 flink作为先进的流水计算引擎,提供了三种时间概念,这对基于时间的流处理应用提供了多种可能。 Event time 指生产设备中每个
阅读全文
摘要:大家好,今天我们来聊一聊最长回文子串这个问题。 前几天,有个校招的小伙伴问到了这个问题。今天,我们就来分析一下。 最长回文子串不论是在校招还是社招中都是各大厂出现频率比较高的题目。所以对于正在找工作的同学来说,这是必须要准备的一道题。 Tips:回文串就是正反读都是一样的字符串,比如"上海自来水来自
阅读全文
摘要:大家好,今天我们来聊一聊最长回文子串这个问题。 前几天,有个校招的小伙伴问到了这个问题。今天,我们就来分析一下。 最长回文子串不论是在校招还是社招中都是各大厂出现频率比较高的题目。所以对于正在找工作的同学来说,这是必须要准备的一道题。 Tips:回文串就是正反读都是一样的字符串,比如"上海自来水来自
阅读全文
摘要:大家好,今天我们来聊一聊最长回文子串这个问题。 前几天,有个校招的小伙伴问到了这个问题。今天,我们就来分析一下。 最长回文子串不论是在校招还是社招中都是各大厂出现频率比较高的题目。所以对于正在找工作的同学来说,这是必须要准备的一道题。 Tips:回文串就是正反读都是一样的字符串,比如"上海自来水来自
阅读全文
摘要:大家好,今天我们来聊一聊股票交易问题。 Tips:炒股投资的朋友可以直接走了,这是程序员的笔试面试题,不是真正的去探讨炒股哦!不过这两天港股涨的不错... 前几天群里的小伙伴参加字节面试,遇到了股票交易这么一道题。今天我们就来分析一下。同时也给即将要参加校招的朋友们提供准备,这是字节腾讯等大
阅读全文
摘要:大家好,今天我们来聊一聊股票交易问题。 Tips:炒股投资的朋友可以直接走了,这是程序员的笔试面试题,不是真正的去探讨炒股哦!不过这两天港股涨的不错... 前几天群里的小伙伴参加字节面试,遇到了股票交易这么一道题。今天我们就来分析一下。同时也给即将要参加校招的朋友们提供准备,这是字节腾讯等大
阅读全文
摘要:今天和大家来聊一聊Redis的Stream类型,Redis从5.0开始引入了一种新的数据类型Stream类型,它是专门为消息队列设计的数据类型。 首先,我们先来看一下消息队列存取消息的过程。在分布式系统中,当两个组件要基于消息队列进行通信时,一个组件把消息发送到消息队列,我们称之为生产者,另一个组件
阅读全文
摘要:内存碎片大家都已经耳熟能详了。当Redis数据删除后,Redis释放的内存空间可能不是连续的,这就会带来一个问题,这些不连续的内存空间有可能处于闲置的,但是redis缺无法来保存数据,这就会减低Redis保存的数据量。 那我们该如何来判断Redis是否存在内存碎片呢? Redis提供了一个Info
阅读全文
摘要:我们在上一篇文章初识动态规划已经对动态规划的算法思想有了一定的了解,今天我们再来通过一个经典问题:0,1背包问题,从更深层次的角度来认识一下动态规划算法。建议先看上一篇文章,再来看这篇。 首先,我们来看一下什么是0,1背包问题。 问题描述:给定 n 件物品,物品的重量分别为w1、w2、w3....,
阅读全文
摘要:今天我们来聊一聊Redis的淘汰策略。 在使用Redis的过程中,当Redis缓存被写满之后,Redis就会根据配置的淘汰策略进行数据淘汰。从Redis4.0之后一共有8种淘汰策略。我们来分别看一下。 1.noeviction不进行数据淘汰,也是Redis的默认配置。这时,当缓存被写满时,再有写请求
阅读全文
摘要:今天我们来聊一聊分布式锁的那些事。 相信大家对锁已经不陌生了,我们在多线程环境中,如果需要对同一个资源进行操作,为了避免数据不一致,我们需要在操作共享资源之前进行加锁操作。在计算机科学中,锁(lock)或互斥(mutex)是一种同步机制,用于在有许多执行线程的环境中强制对资源的访问限制。 比如你去相
阅读全文
摘要:小李:老王,早上又吃鸡蛋灌饼不加肠啊! 老王:是啊,我的肠又被捐出去了!小李,看你脸色,这又是昨天加班了。 小李:可别提了,昨天logstash机器又顶不住了,还被运维给鄙视了一番,看来我得学习学习你那牛叉的数据接入系统了,上线以来都没出过问题。 老王:好啊,我给你讲一讲,巴拉巴拉.... 周围的人
阅读全文
摘要:一提到Redis缓存,我们不得不了解的三个问题就是:缓存雪崩、缓存击穿和缓存穿透。这三个问题一旦发生,会导致大量的请求直接请求到数据库层。如果并发压力大,就会导致数据库崩溃。那p0级的故障是没跑了。 今天我们就来详细的了解这个三个问题诱因以及如何解决。 废话不多说,我们直接开搞!!! 一、缓存雪崩
阅读全文
摘要:大家好,经过前两篇的分析,相信大家对动态规划都有了一定的认识,也能感受到动态规划强大的算法思想。今天我们就来总结一下动态规划能解决哪些问题,以及解决动态规划问题的思考过程是怎么样的?我们一起出发吧。 一、问题模型 动态规划一般是用来解决最优解。而在解决的过程中是需要经历多个阶段的决策。每个阶段都会对
阅读全文
摘要:一提到Redis缓存,我们不得不了解的三个问题就是:缓存雪崩、缓存击穿和缓存穿透。这三个问题一旦发生,会导致大量的请求直接请求到数据库层。如果并发压力大,就会导致数据库崩溃。那p0级的故障是没跑了。 今天我们就来详细的了解这个三个问题诱因以及如何解决。 废话不多说,我们直接开搞!!! 一、缓存雪崩
阅读全文
摘要:我们在上一篇文章初识动态规划已经对动态规划的算法思想有了一定的了解,今天我们再来通过一个经典问题:0,1背包问题,从更深层次的角度来认识一下动态规划算法。建议先看上一篇文章,再来看这篇。 首先,我们来看一下什么是0,1背包问题。 问题描述:给定 n 件物品,物品的重量分别为w1、w2、w3....,
阅读全文
摘要:我们在上一篇文章初识动态规划已经对动态规划的算法思想有了一定的了解,今天我们再来通过一个经典问题:0,1背包问题,从更深层次的角度来认识一下动态规划算法。建议先看上一篇文章,再来看这篇。 首先,我们来看一下什么是0,1背包问题。 问题描述:给定 n 件物品,物品的重量分别为w1、w2、w3....,
阅读全文
摘要:动态规划一直被认为是最难理解的一种算法思想,什么重叠子问题、动态转移方程、最优子结构等等,一听就高深莫测,没有往下学习下去的动力。接下了我会更新一系列的文章来把动态规划这个算法思想尽量去讲明白,希望对你在以后的学习生活中提供一些帮助。没有关注的同学先点个关注吧。 一、初识动态规划 废话不多说,我们直
阅读全文
摘要:大家好,今天我们来学习一下如何确定Redis是不是真的变慢了。 我们在使用redis时一定会遇到变慢的时候,那我们如何来判断Redis是否真的变慢了呢, 一个最直接的方法就是查看Redis的响应延迟,一般情况下,Redis延迟很低,但是在某些时刻, Redis实例会出现比较高的响应延迟,甚至能达到几
阅读全文
摘要:大家好,今天我们来看一下回溯算法。 在开始之前,我们先来回顾一下贪心算法。如果不熟悉的同学可以看这篇文章从哈夫曼编码中我们学到了什么?。 贪心算法只能根据当前的状态,选择最优的走法,走向下一步,就和人的一生一样,只能在岔路口选择一条当前条件下最优的路走,过去就过去了,不能回退,只能一条路走到黑。而回
阅读全文
摘要:如何理解分治算法 什么是分治算法?简单来说就是“分而治之”,也就是将原问题划分成n个规模较小的,并且结构与原问题相似的子问题,然后去递归地解决这些子问题,最后再合并其结果,就得到原问题的解。 对于分治算法来说,一般适合用递归来实现。分治算法的递归实现中,每一次递归都会涉及如下三个操作。 分解:将原问
阅读全文
摘要:大家还记得我们在数据结构里学的哈夫曼编码吗?今天我们就来重新温习一下哈夫曼编码,以及通过哈夫曼编码,我们能学到什么核心思想呢。在开始之前,我们先回顾一下什么是哈夫曼编码。哈夫曼编码是一种对数据进行压缩的编码方式,可以有效节省存储空间。我们来看一个例子,假如我们有一个长度为200的字符串电文要传输,并
阅读全文
摘要:今天我们来聊一下字符串匹配算法里最著名的算法-KMP算法,KMP算法的全称是 Knuth Morris Pratt 算法,是根据三位作者(D.E.Knuth,J.H.Morris 和 V.R.Pratt)的名字来命名的。KMP算法和BM的算法思想类似,如果对BM算法不熟悉的同学可以看这篇文章BM算法
阅读全文