自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

360linker

IT圈技术、产品、运营、市场、职场等信息交流分享

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

原创 redis 数据持久化:aof和rdb 原理

Redis是内存数据库,它将自己的数据库状态储存在内存里面,一旦服务器进程退出, 服务器中的数据库状态也会消失不见。所以redis有两种机制可以将数据库状态保存到磁盘里面:RDB,AOF。RDB1. RDB两种执行方式:a) RDB持久化既可以手动执行b) RDB持久化可以根据服务器配置选项定期执行,该功能可以将某个时间点上的数据库状态保存到一个ROB文件中2....

2019-08-02 11:27:53 362

转载 1999-2019,互联网失落者

2019 年的人们很怀念 1999 年,1999 年的人们很期盼 2019 年。在经历了 20 年互联网大潮之后,越来越多元化的新技术在互联网的映衬下显得格外生动。1998 年,新浪成立,它和 1996 年成立的搜狐以及 1997 年成立的网易成为了 2000 年左右人们上网时点击量最高的网站,而 10 年后,他们被百度取代。1999 年,马云从北京回到杭州,此时阿里巴巴的业务尚未明晰...

2019-07-16 11:45:59 856

转载 全文检索使用 solr 还是elasticSearch ?

1|0什么是全文搜索什么是全文搜索引擎?百度百科中的定义:全文搜索引擎是目前广泛应用的主流搜索引擎。它的工作原理是计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。从定义中我们已经可以大致了解全...

2019-07-12 11:11:54 664

转载 Elasticsearch与Solr优缺点比较

Elasticsearch简介Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。它可以用于全文搜索,结构化搜索以及分析,也可以将这三者进行组合。Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,可以说Lucene是当今最先进,最高效的全功能开源搜索引擎框架。但是Lucene只是...

2019-07-12 11:01:36 3742 3

原创 redis 五大对象类型及底层实现原理分析

在Redis中,并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统,这些对象系统也就是前面说的五大数据类型,每一种数据类型都至少用到了一种数据结构。通过这五种不同类型的对象,Redis可以在执行命令之前,根据对象的类型判断一个对象是否可以执行给定的命令,而且可以针对不同的场景,为对象设置多种不同的数据结构,从而优化对象在不同场景下的使用效率。1、对象的类...

2019-07-12 10:41:23 305

转载 如何在gerrit中修改已提交的change

在gerrit审核中,经常会遇到开发人员提交的代码审核不通过的情况。那么开发人员这时有两个选择:1)按照要求修改代码,然后重新提交一次代码。2)修改原来的Change。第一种方法会产生多次commit,而这些commit实际上是没有太多意义的,所以不推荐使用。所以推荐第二种方法。下面讲解如何做:安装 commit-msg hook安装gerrit的commit-msg hook...

2019-07-10 14:37:56 5485

转载 5分钟弄懂:语音识别技术原理

简要给大家介绍一下语音怎么变文字的吧。希望这个介绍能让所有同学看懂。首先,我们知道声音实际上是一种波。常见的mp3、wmv等格式都是压缩格式,必须转成非压缩的纯波形文件来处理,比如Windows PCM文件,也就是俗称的wav文件。wav文件里存储的除了一个文件头以外,就是声音波形的一个个点了。下图是一个波形的示例。在开始语音识别之前,有时需要把首尾端的静音切除,降低对后续...

2019-07-10 14:33:49 2754

转载 关于Git每次进入都需要输入用户名和密码的问题解决

之前使用git的时候每次都需要输入密码,输入一次两次还好,每次都输入真的恨不得砸电脑,相信各位小伙伴都需到过和我一样的问题,今天我们就来说说这个问题:首先,如果我们git clone的下载代码的时候是连接的https://而不是git@git (ssh)的形式,当我们操作git pull/push到远程的时候,总是提示我们输入账号和密码才能操作成功,频繁的输入账号和密码会很麻烦,也特别烦恼。...

2019-07-10 11:14:44 1784

转载 腾讯不一样的敏捷玩法!

01“鹅厂”面临的挑战从2006年开始,腾讯的研发规模开始膨胀,开发模式急需规范和标准化,到底走IPD(集成产品开发)还是Agile(敏捷)的开发路线,公司管理层也在为拿不定主意而犯愁,之后研发管理部开始与ThoughtWorks公司接触,逐渐将敏捷产品开发引入进来,并正式命名为TAPD(Tencent Agile Product Development)。实施阶段试点期:组织...

2019-07-09 16:58:00 564

原创 springboot设置响应状态码

业务需要自定义http的响应状态,图中响应状态码是200,需要改成401.使用HttpServletResponse对象直接设置状态局限比较大,可以改用以下方式,通过ResponseEntity可以返回我们需要的数据还可以自定义状态码。 @RequestMapping("/oauth/token") public ResponseEntity<Object> to...

2019-07-05 14:54:33 4575

原创 redis 数据结构 之整数集合与压缩列表实现原理

整数集合当集合中只有整数,且数目不多时,redis会使用整数集合intset作为集合的实现。整数集合可保存16位 32位以及64位整数,且去重。typedef struct intset { //编码方式 uint32_t encoding; //元素数目 uint32_t length; //保存元素的数组 int8_t content...

2019-07-05 09:38:08 364

转载 程序员的重复劳动陷阱

同样是一样的计算机专业毕业,进入职场的职位和工作都差不多,为何有些程序员短短几年就成长为全能选手或领域专家,有些程序员还在做CRUD?程序员的重复劳动陷阱不知道大家有没有这样的感觉,每次加入一个新的公司/组,一开始总是要学这个学那个,可能会花很多时间看现有的代码,然后花一些时间实现一点点小的功能。等到经过一段时间后,自己对工作越来越得心应手,提来的类似需求马上就可以做,以做得多做...

2019-07-03 16:59:27 293

转载 最新数据库排行:Oracle 分数增长最多,Redis 持续下降

DB-Engines 数据库流行度排行榜 7 月更新已发布,和去年同时期的相比,今年增加的分数稍显疲软。哪怕是分数增长最多的 Oracle,在 6 月也只是增加了 22.04 分。DB-Engines 数据库流行度排行榜 7月更新已发布,排名前二十如下:总体排名依旧是没有什么变化,虽然分数基本都有所增加,但可以看到,和去年同时期的相比,今年增加的分数稍显疲软。哪怕是分数增长最多...

2019-07-03 16:41:36 328

转载 不知道学什么语言?一文为你精选最高效热门的编程语言

编程世界年复一年变化万千。一些高级的编程语言,如Java和JavaScript总是榜上有名。也有如Kotlin一般的编程语言,以惊人的速度上升,发展迅猛并且已成为如今最受欢迎的编程语言之一。本文旨在为开发人员精选最为高效热门的编程语言以供其学习,使其能学以致用,推陈出新。我们必须承认,当下世界所取得的大部分科技进步都要归功于软件与硬件的结合。而软件技术的核心就是高级编程语言。当下的开...

2019-07-03 16:35:38 296

转载 敏捷开发之极限编程

XP概述XP是一种轻量(敏捷)、高效、低风险、柔性、可预测、科学而且充满乐趣的软件开发方式。在以前的开发过程中,很多规则已经难于遵循,很多流程复杂而难于理解,很多项目中文档的制作过程正在失去控制。人们试图提出更全面更好的一揽子方案,或者寄希望于更复杂的、功能更强大的辅助开发工具(CaseTools),但总是不能成功,而且开发规范和流程变得越来越复杂和难以实施。XP就是在这样的情况下诞...

2019-06-28 09:39:18 685

转载 精益开发的三大要点

精益管理是丰田模式的一套最先进的企业运营管理方法、是企业变革的手段、是企业战略执行的工具,是一种思维方式。这种管理模式的最高境界就是调动全体员工不断学习、积极参与、持续改善的企业文化。精益,是一种思想,一种哲学,一个方法论,其精髓是拒绝浪费。我们IT项目开发学习的不是“精益生产”的形式,而是其精髓思想。这种思想,不仅可以用于生产,也可以渗透到IT软件项目开发中。在研究会上,我们讨论到一个借鉴了...

2019-06-28 09:29:54 2397

原创 redis跳跃表实现原理

跳跃表是一种可以对有序链表进行近似二分查找的数据结构,redis在两个地方用到了跳跃表,一个是实现有序集合,另一个是在集群节点中用作内部数据结构。 跳跃表(skiplist)是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。  跳跃表支持平均O(logN)、最坏O(N)复杂度的节点查找,还可以通过顺序性操作来批量处理节点。  在大部分情况下,...

2019-06-27 14:45:17 4976 1

转载 敏捷项目管理流程-Scrum框架最全总结!

Scrum中的角色Scrum Master——项目负责人、项目经理保护团队不受外界干扰,是团队的领导和推进者,负责提升 Scrum 团队的工作效率,控制 Scrum 中的“检视和适应”周期过程。与 Product Owner 一起将投资产出最大化,他确保所有的利益相关者都可以理解敏捷和尊重敏捷的理念。Team——开发人员、测试人员、美工设计、DBA等全职能性团队团队负责交付产品并对其质量...

2019-06-27 13:46:59 1809

转载 redis渐进式rehash机制

在Redis中,键值对(Key-Value Pair)存储方式是由字典(Dict)保存的,而字典底层是通过哈希表来实现的。通过哈希表中的节点保存字典中的键值对。我们知道当HashMap中由于Hash冲突(负载因子)超过某个阈值时,出于链表性能的考虑,会进行Resize的操作。Redis也一样。在redis的具体实现中,使用了一种叫做渐进式哈希(rehashing)的机制来提高字典的缩放效率,避...

2019-06-26 09:51:28 5287 8

转载 项目管理 实现敏捷框架的比较:Scrum 方法 vs 看板方法 vs 精益开发 vs 极限编程

本文中,我们会讲解时下最流行的四种实现敏捷开发的框架方法,并且一一列举他们的优缺点。如果您是刚刚踏进敏捷开发的世界中,可能刚开始会被这个方法那个方法搞晕掉。那是因为敏捷开发只是一些简明扼要的概要准则,没有明确说明需要如何一二三步骤地来落地实现。因此,人们从实践中总结真知,就衍生出了实现敏捷的各种各样的方法。其中,最广为人知的当属 Scrum 方法、看板方法、精益开发以及极限编程。虽然本...

2019-06-24 11:29:09 1116

转载 深度剖析什么是 SLI、SLO和SLA?

前言SLO和SLA是大家常见的两个名词:服务等级目标和服务等级协议。云计算时代,各大云服务提供商都发布有自己服务的SLA条款,比如Amazon的EC2和S3服务都有相应的SLA条款。这些大公司的SLA看上去如此的高达上,一般是怎么定义出来的呢?本文就尝试从技术角度解剖一下SLA的制定过程。说SLA不能不提SLO,这个是众所周知的,但是还有一个概念知道的人就不多了,那就是SLI(Serv...

2019-06-19 15:41:53 30733 1

原创 Redis中字典(Dictionary)的实现

字典字典,又称为符号表(Symbol table)、关联表(associative array)或映射(map),是一种用于保存键值对(key-value pair)的抽象数据结构。在字典里面,一个键(key)可以和一个值(value)进行关联(将键映射为值)字典中的每个键都是独一无二的,程序可以在字典中根据键查找与之关联的值,或者通过键更新值,又或者根据键来删除整个键值对。Redi...

2019-06-19 10:28:23 3060 1

翻译 10个引领容器革命的Kubernetes发行版

Kubernetes和容器正在改变应用程序的构建,部署和管理方式,这些发行版正在引领这一变革。如果你需要大规模的容器编排,Kubernetes已成为必选的项目。这一Google推出的开源容器编排系统备受好评,得到了良好的支持,并且发展迅速。Kubernetes同时庞大,复杂,难以设置和配置。不仅如此,大部分繁重的工作还留给了最终用户。因此,最好的方法不是单纯尝试单独使用,而是寻找一个...

2019-06-19 08:50:23 584

转载 API网关如何实现对服务下线实时感知

一、前言在基于云的微服务应用中,服务实例的网络位置都是动态分配的。而且由于自动伸缩、故障和升级,服务实例会经常动态改变。因此,客户端代码需要使用更加复杂的服务发现机制。目前服务发现主要有两种模式:客户端发现和服务端发现。服务端发现:客户端通过负载均衡器向服务注册中心发起请求,负载均衡器查询服务注册中心,将每个请求路由到可用的服务实例上。 客户端发现:客户端负责决定可用服务实例的网络地...

2019-06-19 08:46:18 334

转载 详解Eureka 缓存机制

引言Eureka是Netflix开源的、用于实现服务注册和发现的服务。Spring Cloud Eureka基于Eureka进行二次封装,增加了更人性化的UI,使用更为方便。但是由于Eureka本身存在较多缓存,服务状态更新滞后,最常见的状况是:服务下线后状态没有及时更新,服务消费者调用到已下线的服务导致请求失败。本文基于Spring Cloud Eureka 1.4.4.RELEASE,在默...

2019-06-19 08:43:32 906 1

转载 你清楚HTTP缓存机制和原理吗?

Http 缓存机制作为 web 性能优化的重要手段,对于从事 Web 开发的同学们来说,应该是知识体系库中的一个基础环节,同时对于有志成为前端架构师的同学来说是必备的知识技能。前言Http 缓存机制作为 web 性能优化的重要手段,对于从事 Web 开发的同学们来说,应该是知识体系库中的一个基础环节,同时对于有志成为前端架构师的同学来说是必备的知识技能。但是对于很多前端同学来说,仅...

2019-06-18 18:13:07 124

转载 国外程序员喜爱的5种文本编辑器

文本编辑器的选择是很多初学编程者在学习编程时需要考虑的问题之一,当前IT行业应用开发平台软件较多,可供程序员选择的文本编辑器类型较多,但是一个好的文本编辑器能够提高程序工作的效率,达到事半功倍的效果。文本编辑器的选择是很多初学编程者在学习编程时需要考虑的问题之一,当前IT行业应用开发平台软件较多,可供程序员选择的文本编辑器类型较多,但是一个好的文本编辑器能够提高程序工作的效率,达到事半功...

2019-06-18 18:11:48 2199

原创 什么是Scrum敏捷开发?

什么是敏捷开发?敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。怎么理解呢?首先,我们要理解它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开发;而这种开发方式的主要驱动核心是人;它采用的是迭代式开发;为什么说是以人为核心?我们大部分人都学过瀑布开发模型,它是以文档为驱动的,为什...

2019-06-18 16:28:41 441

转载 Redis源码剖析--列表t_list实现

Redis中的列表对象比较特殊,在版本3.2之前,列表底层的编码是 ziplist 和 linkedlist 实现的, 但是在版本3.2之后,重新引入了一个 quicklist 的数据结构,列表的底层都由quicklist实现。这边是在看源码和实际验证的时候发现的区别,然后上网查证。由于目前使用的redis基本都在3.2了, 而且老版本肯定会被取代, 所以我们只分析3.2版本之后的实现。对于老...

2019-06-14 15:11:44 326

转载 Python到底能做什么?它的优点在哪?

Python今天是排名前3的最受欢迎和增长最快的编程语言之一。它是一种多用途,高级别,面向对象,交互式,解释型和对用户非常友好的编程语言。交互模式是Python shell的一项功能,可为您在控制台上输入的每条语句提供即时反馈。Python有一个简单的编码风格,很容易用一点知识和正确的工具来捕捉。因此,这是初学者计划在编程职业生涯中首选的语言。一、Python可以做什么?1、数据...

2019-06-12 17:44:53 894

转载 Cannot execute request on any known server

1、com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connect或者com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any k...

2019-06-12 17:23:25 968

转载 一条SQL查询是如何执行的

mysql> select * from T where ID=10;我们看到的只是输入一条语句,返回一个结果,却不知道这条语句在 MySQL 内部的执行过程。所以今天我想和你一起把 MySQL 拆解一下,看看里面都有哪些“零件”,希望借由这个拆解过程,让你对 MySQL 有更深入的理解。这样当我们碰到 MySQL 的一些异常或者问题时,就能够直戳本质,更为快速地定位并解决问题。...

2019-06-11 13:51:32 560

转载 Git 中tag 怎么用?

打标签同大多数 VCS 一样,Git 也可以对某一时间点上的版本打上标签。人们在发布某个软件版本(比如 v1.0 等等)的时候,经常这么做。本节我们一起来学习如何列出所有可用的标签,如何新建标签,以及各种不同类型标签之间的差别。列显已有的标签列出现有标签的命令非常简单,直接运行git tag即可:$ git tagv0.1v1.3显示的标签按字母顺序排列,所以...

2019-06-04 18:25:59 173

转载 内存溢出和内存泄漏的区别、产生原因以及解决方案

内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。memory leak会最终会导...

2019-06-04 18:22:34 320

翻译 DevOps究竟是如何改变开发和运维人员的?

DevOps一种思想和文化的转变,结合自动化的理念,正在重新定义开发和运维人员的合作方式。DevOps不仅仅只是字面上的开发和运维融合,多年以来,这两个群体一直被文化和知识界限所分开,尤其是在大型企业IT组织内部。这种分开很直接,开发者只关心编码,运维人员则确保其正常运行。他们之间完全脱节,导致需要更长的QA周期。并且经常不能在环境上部署新程序,因为这样可能会导致宕机...

2019-06-04 15:08:43 5960

转载 Sidecar模式:下一代微服务架构的关键

Sidecar设计模式正在收到越来越多的关注和采用。作为Service Mesh的重要要素,Sidecar模式对于构建高度高度可伸缩、有弹性、安全且可便于监控的微服务架构系统至关重要。而Service Mesh也已经被证明,正在改变企业IT的“游戏规则”,它降低了与微服务架构相关的复杂性,并提供了负载平衡、服务发现、流量管理、电路中断、遥测、故障注入等功能特性。什么是Sidecar模式?Si...

2019-05-31 14:19:22 301

转载 为什么大公司一定要使用DevOps?

0 DevOps的意图究竟什么是DevOps? 要想回答这个问题,首先要明确DevOps这个过程参与的人员是谁?即开发团队和IT运维团队!那么,DevOps的意图是什么呢?即在两个团队之间,建立良好的沟通和协作,更快更可靠的创建高质量软件!事实上,并不是这两个团队之间的协作帮助交付了更好的软件,而是“开发”和“运维”团队之间的统一导致了软件的改进,并以更快的速度交付。我们不要忘记DevOp...

2019-05-31 11:00:54 212

转载 没有人喜欢,但却不得不选择的敏捷开发

敏捷开发是一种从1990年开始逐渐引起人们广泛关注的新型软件开发方式,它是具有应对快速变化的需求的软件开发能力。相对于非敏捷开发,它是一种以用户需求为核心,持续迭代,循序渐进的开发方式。敏捷绝非某一种特定的开发方法,它只是一种应对快速变化的需求的一种软件开发能力。所以敏捷开发并不在意需求是否变更,即便是在项目开发的后期,敏捷开发依然乐于接受需求的变更。这一点对于取得客户的满意度来说,无疑是非常...

2019-05-31 10:42:52 203

转载 微服务架构下分布式事务解决方案——阿里GTS

1 微服务的发展微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源社区等都开始了微服务的讨论和实践。Hailo有160个不同服务构成,NetFlix有大约600个服务。国内方面,阿里巴巴、腾讯、360、京东、58同城等很多互联网公司都进行了微服务化实践。当前微服务的开发框架也非常多,...

2019-05-27 22:42:45 147

转载 @Value取不到值的原因(引用application.properties中自定义的值)

在spring mvc架构中,如果希望在程序中直接使用properties中定义的配置值,通常使用一下方式来获取: @Value("${tag}") private String tagValue; 但是取值时,有时这个tagvalue为NULL,可能原因有:使用static或final修饰了tagValue,如下: private static S...

2019-05-23 10:28:42 5789 1

空空如也

空空如也

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

TA关注的人

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