自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

于振

迷失与成长

  • 博客(11)
  • 收藏
  • 关注

原创 构建整洁代码

很多时候,当我们接手一个开发了一年以上的工程代码时,通常都会有很多要吐槽的地方,但是在这些工程新建之初,想必也一定是仔细规划了整个架构,制定了一系列的规范和约束。并且,由于项目在开始阶段人员不多,大家彼此沟通也很顺畅。随着项目的不断迭代,越来越多的功能、越来越多的人加入进来,PM总有一揽子需要要做,公司也会有业务增长的压力。研发人员在这种多重压力下,开始对当初定下的一些规范和约束进行妥协,先上线和...

2019-07-02 00:42:00 326

原创 谈谈缓存(下)

我们在 谈谈缓存(上)中介绍了缓存的一些基本概念,和使用上面的一些方式。在这篇文章中,我们会着重说下在具体场景下的解决方案,以及在缓存设计中需要注意的一些关键点。具体场景下的解决方案应对热点缓存所谓热点缓存就是访问非常频繁的那些缓存,比如一个电商系统的秒杀页面,或者是微博的热门话题页等,对于这类页面所请求的数据,如果每次都去远程缓存系统中获取,可能会因为访问量太大导致远程缓存系统出现请求过多...

2019-02-14 21:51:01 435

原创 谈谈缓存(上)

谈谈缓存(上)最近看了一些关于缓存的东西,七零八落的,所以在这里做个总结。一开始想着用一篇文章把缓存相关的内容都梳理下,写着写着发现要写的东西太多了,于是就把整篇文章拆成了上下两篇。在上篇中主要介绍缓存的一些概念和用法。下篇针对缓存使用中可能会遇到的一些问题给出解决方案。缓存相信大家都不陌生了,比如浏览器、CDN、返向代理,等等。它们通过将一些资源(通常是静态资源)部署在离用户较近的地方,...

2019-02-04 18:20:41 847

原创 Elasticsearch快速入门2 - 高级查询功能

我们在入门(1)中详细介绍了ES的安装、基本概念和一些基本的REST Api请求,在这篇入门(2)中,我们继续介绍ES的高级查询功能。为了说明ES强大的搜索功能,我们还以上篇文章中的customer索引为例,但对其中的文档字段进行了一定的补充,补充后一个文档的内容大致如下所示:{ "firstname": "zhang", "lastname": "san&amp

2019-01-30 11:18:08 313

原创 排序算法整理

首先需要声明的是,本文并不会探讨每个算法内部的逻辑,而主要以代码实现和结论为主,需要了解具体原理的同学可以参考《算法导论》一书。从大的方向上来说,排序算法可以分为内部排序和外部排序两种,内部排序 指的是整个排序过程不需要借助于外部存储器(比如磁盘),所有排序操作都可以在内存中完成。而如果参与排序的数据元素非常多,数据量非常大,则无法把整个排序过程放在内存中完成,必须借助于外部存储器(比如磁盘...

2019-01-30 11:05:43 119

原创 Elasticsearch快速入门1 - 概念和基本使用

很多东西在工作中一直使用,但是从来没有认真总结过,遇到问题了就上网翻翻文档,工作中的问题是解决了,但是回过头去看,又好像什么都不懂,只是对经常使用的知识比较熟悉而已。这也是这篇文章产生的原因,希望通过这种方式,让自己的知识更加系统化。好了,下面就来说说ElasticSearch,这篇文章偏入门些,如果您已经对ElasticSearch非常熟悉了,当然也可以再浏览下,如果你还从来没接触过,希望这篇文...

2018-07-16 21:02:38 189

原创 简说Java的垃圾回收

在进行垃圾回收前,我们首先要能够判断一个Java对象是不是还有存在的必要,只有不再使用的对象才应该被回收。判断的方法有两种:引用计数法可达性分析引用计数法通过给对象中添加一个引用计数器,每当有一个地方引用它时,计数器的值就加1,当失去引用时,计数器的值就减1,当计数器值变为0就认为不再使用。这种方法的优点是实现起来简单,并且效率也很高,但是缺点也很明显,就是很难解决对象之间相互循环引...

2018-07-13 00:35:52 323 1

原创 二叉树遍历的那些事

定义树的节点如下public class TreeNode { public Integer data; public TreeNode leftChild; public TreeNode rightChild;}非递归前序遍历方法一考虑一般情况,对于给定的一个节点,可以按下面三个步骤遍历:1、持续遍历左子节点,直到左子节点为空。 2、...

2018-07-13 00:24:26 132

原创 记一次Elasticsearch的升级

笔者所在公司前段时间对线上Elasticsearch进行了一次比较大的升级,版本由1.6.1升级到了5.5.0,由于版本跨度较大,在升级的过程中踩了不少坑,所以将整个过程记录下来,希望能够给需要的同学提供一点帮助。整个升级过程大概分为了下面几步:安装新的ES集群 对Mapping和程序代码进行改造 迁移数据并进行双写接下来就逐条说明。安装并配置Elasticsearch集群ES的...

2017-08-31 20:46:00 2045

原创 当我们在使用Flask时,如何记录日志

我们在开发基于Flask的Web应用时,往往容易忽略了对日志的使用,而在Flask的官方文档中,对日志这块的介绍也仅仅停留在如何与系统集成上。记录日志这个看似很简单的事情,在实际中很多人却不一定能做好,要么不知道何时进行日志记录,要么就是记录的日志然并卵。所以,今天就来说说记录日志这件小事。说它是件小事,因为它的确不会影响你系统的正常流程,有没有它系统都能跑起来,也正因为这样,很多人便忽略了日志的处

2017-02-24 17:38:59 34172 3

原创 MongDB索引的介绍及使用

索引的重要性,应该无需多说了,它可以优化我们的查询,而且在某些特定类型的查询中,索引几乎是必不可少的。这篇文章主要介绍了MongoDB中的几种常见的索引以及在使用时候的一些注意事项。这几种索引基本上涵盖了我们在平时开发的时候会遇到的大部分情况,但是,仍然需要注意的是,这篇文章没有涉及一些特殊的索引,比如TTL索引、全文本索引和地理空间索引,想要了解这几个索引的同学在这里可能得不到想要的答案。单一索引

2017-02-24 17:36:59 413

空空如也

空空如也

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

TA关注的人

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