上一页 1 2 3 4 5 6 7 8 9 ··· 15 下一页
摘要: 来源于《Redis深度历险:核心原理与应用实践》的阅读笔记。Redis的常见用途: 记录帖子的点赞数,评论数和点击数(hash); 记录用户的帖子ID列表(便于快速显示用户帖子列表)(zset); 记录帖子的标题、摘要、作者和封面信息,用于列表展示(hash); 记录帖子的点赞用户ID列表,评论ID 阅读全文
posted @ 2021-12-03 22:40 长江同学 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 在处理业务进行SQL学习UPDATE时,我们从示例中看到的基本都是以下形式 UPDATE table_name SET column_name='固定值' condition 或者 UPDATE table_name SET column_name=(子语句衍变的固定值) condition 前两天 阅读全文
posted @ 2021-11-15 17:52 长江同学 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 对于定时执行的job,如果特别频繁,比如几分钟一次,时间一长,历史执行的作业就会占用大量磁盘,影响后续使用。我们可以用以下两种方法进行处理: 1.执行脚本,删除指定作业的历史作业信息: def jobName = "test_uploadFileForShell" def maxNumber = 1 阅读全文
posted @ 2021-11-12 16:15 长江同学 阅读(1221) 评论(0) 推荐(0) 编辑
摘要: 考虑如下表结构:table: devicecolumns: id, create_time, user_id这是一张设备表,设备是每一行的id都唯一对应一个用户user_id,而这个user_id是会随着系统的变化而变化的。 这种场景在我们设计系统时是很常见的,一般有可能如上所示,是一个固定内容的字 阅读全文
posted @ 2021-10-19 09:51 长江同学 阅读(565) 评论(0) 推荐(0) 编辑
摘要: 突然接到通知,线上环境出现了系统故障,用户无法扫码进行下单了。查看了下服务器的内存,发现某个java进程的CPU占用到了100%左右,维持了十几秒,随后恢复正常,随后发现这期间有客户在进行大文件的下载。... 对于文件下载的处理,如果说能够在业务层面限制下载的规模,那是最好的,对于IO、网络、数据库 阅读全文
posted @ 2021-10-08 21:28 长江同学 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 二分查找的插入排序是在处理待处理插入元素时,在已排好序的集合中采用二分法查找到插入的位置,而后进行整体后移,腾出这个插入的位置后,将该元素插入。 思路并不难理解,但是当我面对这个二分法实现的时候,还是觉得有很多细节不好处理,于是有了以下思路的记录: 定义i为当前轮到的比较元素,如果i<2,那么不需要 阅读全文
posted @ 2021-10-08 20:51 长江同学 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 虽然两三年前配过一次,细节已经没啥印象了,今天又重新配置了一次,只感觉这个配置好多坑。也是因为自己对这一套的原理理解不到位吧,但是不得不说,还是坑,设计和提示地不人性化。 1.细节很多,但是具体的说明不显眼; 2.执行job,你以为成功了,但是收件箱就是没有收到,此时job的console outp 阅读全文
posted @ 2021-09-30 23:25 长江同学 阅读(668) 评论(0) 推荐(0) 编辑
摘要: 今天配置了一下Jenkins作为简单的定时作业配置,辅助线上的一些手动处理作业。配置到Build Perodemically的时候,觉得这种cron配置好像很多地方都见过。所以这里总结一下,方便系统地认识理解和使用这个工具与规则。 【cron与crontab】 在Unix与类Unix系统(Linux 阅读全文
posted @ 2021-09-30 20:47 长江同学 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 之前在设计一些查询语句的时候,总是会纠结,到底开始时间是设置成00:00:00还是00:00:01,不确定前者是否是合法的时间设置。于是: public static void main(String[] args) throws ParseException { SimpleDateFormat 阅读全文
posted @ 2021-09-30 13:33 长江同学 阅读(487) 评论(0) 推荐(0) 编辑
摘要: 在之前的博客中,提到了一种CSV文本生成下载方法(链接)。但在实际使用过程中,发现了一个问题,无论后台生成的变量是字符串还是数值类型,只要是超过了一定的范围,下载的CSV文件内容用Excel打开时就会转用科学计数法;另外,日期的表示也是很奇怪: 但实际上,用户希望打开就直接是文本内容: 【解决】 E 阅读全文
posted @ 2021-09-24 22:36 长江同学 阅读(1103) 评论(0) 推荐(0) 编辑
摘要: 插入排序是非常好理解的。看图: 注意,这里比较是从最后一个元素往前比较,如果当前的元素比上一个大,那么比较和交换的工作就此停止。如果是每次都从第一位开始比较的话,那么无论是否已经排好顺序,总是会比较n-1个元素,次数上是会比这种方法多的。 代码如下: public class InsertionSo 阅读全文
posted @ 2021-09-22 22:02 长江同学 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 在之前的博客里说了快排的基本原理,并配图和代码说明了执行流程(https://www.cnblogs.com/bruceChan0018/p/15209130.html)。在快排的优化手段里,也提到了JDK1.8中的Arrays.sort用到了双轴快排。这里就主要说明双轴快排的流程,原理和代码实现。 阅读全文
posted @ 2021-09-19 23:33 长江同学 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 基本的快速排序流程和代码在之前的博客中已经展示。这里主要说明一些快排的问题以及优化手段。 1.快排是递归处理,所以当集合的数字很多时,我们要注意调用栈的深度。如果调用栈超过了限制,就会造成堆栈的溢出。这个时候我们需要对栈最大深度进行设置,一旦达到了这个深度,不能继续递归,而改为其它的排序方法。 2. 阅读全文
posted @ 2021-09-18 23:28 长江同学 阅读(598) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序的优化主要是三个点:1.使用异或运算,使元素交换时不用临时变量: array[j] ^= array[j + 1]; array[j + 1] ^= array[j]; array[j] ^= array[j + 1]; 2.在外部循环时,设置一个标记,如果整轮比较之后,内部元素交换都没有交 阅读全文
posted @ 2021-09-17 21:46 长江同学 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 在之前的两篇blog中,已经简要的说明了冒泡排序和快排的原理、过程图示以及代码实现。这里主要讨论的是两种排序的复杂度以及一些常见的优化手段。 冒泡排序 【时间复杂度】 在整个序列完全是有序的状态下,只需要执行第一次的内层循环。只要做好标记,我们就不用再进行后续的内层循环。此时时间复杂度为O(n); 阅读全文
posted @ 2021-09-17 00:13 长江同学 阅读(1541) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 15 下一页