自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小春的博客

我想有一所房子,面朝大海,春暖花开, 百兆宽带,能叫外卖,快递直达,不还房贷。

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

原创 mysql order by limit问题

日常用法: select columnfrom table ordre by column limit n;问题:当排序字段值有相同时,那么limit出的数据会随机选出,此时会和我们预想的数据不一致;解决:比如排序字段为create_time,那么可以改成create_time,id,使用双字段排序,当一个字段值一样时,可以使用第二个字段排;...

2019-11-26 10:50:24 222

转载 Redis 持久化

Redis 有两种持久化的方式: 快照 (RDB文件) 和追加式文件 (AOF文件):RDB 持久化方式会在一个特定的间隔保存那个时间点的一个数据快照. AOF 持久化方式则会记录每一个服务器收到的写操作. 在服务启动时, 这些记录的操作会逐条执行从而重建出原来的数据. 写操作命令记录的格式跟 Redis 协议一致, 以追加的方式进行保存. Redis 的持久化是可以禁用的, 就是说你可以...

2019-08-20 17:47:48 182

原创 Google Authenticator (mac)使用

​​​​​DependenciesPython>=2.7System ModificationsCreate a~/.gauthfile with your secrets, ie:[google - bob@gmail.com]secret = xxxxxxxxxxxxxxxxxx[evernote - robert]secret = yyyyyyyyyy...

2019-08-20 11:10:16 4615 1

转载 熔断-降级

断路器断路器模式源于Martin Fowler的Circuit Breaker一文。“断路器”本身是一种开关装置,用于在电路上保护线路过载,当线路中有电器发生短路时,“断路器”能够及时的切断故障电路,防止发生过载、发热、甚至起火等严重后果。在分布式架构中,断路器模式的作用也是类似的,当某个服务单元发生故障(类似用电器发生短路)之后,通过断路器的故障监控(类似熔断保险丝),直接切断原来的主逻...

2019-08-14 17:00:08 163

原创 “一个人的压力来源” —— 一个成年人的告白

人的压力不是来源于外界,而是来源于自己;“房贷?车贷?孩子?”,这三样没有可以吗?一样可以活的很好,很自在;为什么要这三样?有房心里有安全感,我却没有这种感觉,有房孩子才能上学,不要孩子则为不孝;有了孩子没车,任何事都不方便;一切归咎为:尽孝;人不是在为自己活,而是在为别人活;不管有没有意义都是这样的活法;我希望我的下一代不要为我而活,因为这样太累了;失去了人生的意义;自由,没有...

2019-07-09 20:36:41 572

转载 git 代码回滚

用git reflog打印你记录你的每一次操作记录找到你操作的id如:b45959e,就可以回退到这个版本$ git reset --hard b45959e这个命令使本地代码回滚到指定提交位置;提交到origin:强行覆盖远程分支方法git push origin master --forcegit回滚远程版本后强制提交git push -f -- 使...

2018-11-30 18:50:02 142 1

转载 ThreadLocal

原创文章,转载请务必将下面这段话置于文章开头处(保留超链接)。本文转发自技术世界,原文链接 http://www.jasongj.com/java/threadlocal/ThreadLocal解决什么问题由于 ThreadLocal 支持范型,如 ThreadLocal< StringBuilder >,为表述方便,后文用 变量 代表 ThreadLocal 本身,而用...

2018-11-29 17:01:46 502

原创 Redis lua实战 保证操作的原子性

背景:      控制指定请求端的最大并发数;使用redis+lua脚本来完成加锁,释放锁的原子性操作/** * 执行脚本 * @param keys * @param args * @return true 超过最大限制 */ public Boolean eval(String script, List<String...

2018-11-27 14:21:18 5120 1

转载 Redis 分布式锁

前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。可靠性首先,为了确保分布式锁可用,我们至少要确保锁的...

2018-11-26 19:58:29 141

原创 Java Comparable Comparator 区别

java提到比较对象,那就脱离不开 Comparable Comparator 这俩接口;我们知道这两个接口都可以实现我们的功能,但是有什么区别呢:Comparable: compareToComparator: compare使用:区别:       可以看到实现Comparable接口需要侵入到本身的实体类中,而实现Comparator则不需要侵入,与被比较的类...

2018-11-16 17:00:06 132

原创 fastjson JSONArray自动按照字母排序解决方式

解析时增加:Feature.OrderedField 即可

2018-11-15 18:28:53 5584

转载 java实现生产者-消费者

前言生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,生产者往存储空间中添加产品,消费者从存储空间中取走产品,当存储空间为空时,消费者阻塞,当存储空间满时,生产者阻塞。现在用四种方式来实现生产者消费者模型原文:https://juejin.im/entry/596343686fb9a06bbd6f888cwait()和notify()方法的实现...

2018-11-09 13:56:42 137

原创 spring boot devtools遇到的坑

背景:    项目中用到了spring boot devtools实现本地项目热部署,很方便;上线之后压测发现有些不乐观,服务的内存一直不能释放,看GC的log,回收了也不好使;问题排查:   dump下来jvm快照文件.hprof,使用JProfiler和IBMAnalyzer工具分析,发现并没有特殊大的地方占用内存;   于是在本地使用JMeter工具压测,用JVisualVM...

2018-11-07 11:39:42 2956 1

原创 jvm监控工具-快照分析工具

jconsole 带简单GUI界面,只能观察,看不出细节;推荐使用 jvisualvm,带GUI界面,还能看内存和占用内存的数据;分析dump工具:jprofiler,IBM-heapanalyzer,eclipse-memory analyzer...

2018-11-06 20:45:04 1059

转载 jvm内存性能分析-dump

一.dump基本概念        在故障定位(尤其是out of memory)和性能分析的时候,经常会用到一些文件来帮助我们排除代码问题。这些文件记录了JVM运行期间的内存占用、线程执行等情况,这就是我们常说的dump文件。常用的有heap dump和thread dump(也叫javacore,或java dump)。我们可以这么理解:heap dump记录内存信息的,thread du...

2018-11-02 19:36:30 11907

转载 Linux查看CPU和内存使用情况

在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要。在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。top命令是Linux下常用的性能分析...

2018-11-02 19:35:04 2930

转载 linux grep 多条件搜索及按照时间段搜索

1、或操作grep -E '123|abc' filename // 找出文件(filename)中包含123或者包含abc的行egrep '123|abc' filename // 用egrep同样可以实现awk '/123|abc/' filename // awk 的实现方式2、与操作grep pattern1 files | grep pattern2 //...

2018-11-02 15:43:14 16080

转载 MySQL联表查询中的驱动表,优化查询

一、为什么要用小表驱动大表1、驱动表的定义当进行多表连接查询时, [驱动表] 的定义为:1)指定了联接条件时,满足查询条件的记录行数少的表为[驱动表]2)未指定联接条件时,行数少的表为[驱动表](Important!)忠告:如果你搞不清楚该让谁做驱动表、谁 join 谁,请让 MySQL 运行时自行判断既然“未指定联接条件时,行数少的表为[驱动表]”了,而且你也对自己写出...

2018-10-26 16:07:48 321

转载 QPS、PV和需要部署机器数量计算公式(转)

术语说明:QPS = req/sec = 请求数/秒【QPS计算PV和机器的方式】QPS统计方式 [一般使用 http_load 进行统计]QPS = 总请求数 / ( 进程总数 *   请求时间 )QPS: 单个进程每秒请求服务器的成功次数单台服务器每天PV计算公式1:每天总PV = QPS * 3600 * 6公式2:每天总PV = QPS * 3600 * 8服务器...

2018-10-25 19:26:55 427

转载 HashMap,LinkedHashMap,TreeMap的区别

    java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMapMap主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时...

2018-10-11 10:31:51 126

转载 websocket ping pong

以java为例:目前的话,浏览器中没有相关api发送ping给服务器,只能由服务器发ping给浏览器,浏览器返回pong消息; 

2018-09-18 11:29:03 7864

转载 java finally return执行顺序

很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下finally语句是不会被执行的:(1)try语句没有被执行到,如在try语句之前就返回了,这样finally语句就不会执行,这也说明了finally语句被执行的必要而非充分条件是:相应的try语句一定被执行到...

2018-09-18 11:22:09 215

原创 mac Homebrew

Homebrew作用:安装我们所需的命令如:brew install wgetHomebrew安装:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"安装自己所需命令:brew install wget安装所需软件:brew instal...

2018-09-11 14:17:20 161

翻译 mac vim 实用快捷键

Normal模式:光标移动:w:光标移动至下一单词首位b:光标移动至当前单词首位,如果光标已经在当前单词首位,就移动到前一单词首位e:光标移动至当前单词末位gg:光标移动至文本首行Shift+g:光标移动至文本尾行2+Shift+g:光标移动至文本第2行插入行:o:在当前光标的下方插入新一行Shift+o: 在当前光标的上方插入新一行文本操作:x:删...

2018-09-05 12:02:22 2066

原创 mac zsh alias

安装 oh my zsh: sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"sudo vim ~/.zshrcalias vp="cd /Users/xxx/xxx"source ~/.zshrc使用:直接在控制台写:vp则会执行cd /...

2018-09-05 10:59:06 419

转载 多服务器日志-Polysh

安装:wget http://guichaz.free.fr/polysh/files/polysh-0.4.tar.gztar -zxvf polysh-0.4.tar.gzcd polysh-0.4python setup.py install --home=~/polyshecho "export PATH=~/polysh/bin:$PATH" >> ~/....

2018-09-04 21:04:15 553

转载 mac 定时任务

 创建任务文件crontab_scpt.scpt文件on callmeican() set meican_url to "https://meican.com" as string tell application "Google Chrome" open location meican_url activate end tellen...

2018-09-04 11:52:50 1344

原创 mapstruct lombok结合使用

maven pom.xml配置<!-- lombok --><dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.8</version&a

2018-07-11 10:35:07 8651 3

原创 git fork

git remote -vgit remote add upstream https://code.vipkid.com.cn/learning/learning-ipad-plus.gitgit fetch upstreamgit checkout mastergit push origin masterpush代码先执行: git config --global push.default si...

2018-04-23 15:10:26 164

转载 elasticsearch安装和配置

一、环境准备二、安装步骤1.下载2.配置3.启动运行4.验证安装是否成功三、插件配置elasticsearch安装和配置最简化版, 能保证run起来,后续配置优化,待熟悉自行添加,我了解更多会做更多说明和解释一、环境准备1.先申请机器或申请root权限,保证有安装权限2.jdk版本为1.8及以上,1.7报错。下载jdk-1.8 http://www.oracle.com/technetwork/j...

2018-04-19 09:45:41 341

转载 二叉树遍历

二叉树的遍历分为以下三种:先序遍历:遍历顺序规则为【根左右】中序遍历:遍历顺序规则为【左根右】后序遍历:遍历顺序规则为【左右根】什么是【根左右】?就是先遍历根,再遍历左孩子,最后遍历右孩子;举个例子,看下图(图从网上找的):先序遍历:ABCDEFGHK中序遍历:BDCAEHGKF后序遍历:DCBHKGFEA以中序遍历为例:中序遍历的规则是【左根右】,我们从root节点A看起;此时A是根节点,遍历A...

2018-04-07 12:30:13 157

原创 java二分查找

原理:二分查找的基础是已有数组是有序的,将有序数组从中间分成两个部分,低值和高值,通过比较指定数值与中间值得大小来确定指定值属于低值部分还是高值部分,若指定数值大于中间值则去高值数组中继续查找,若指定数值小于中间值则去低值数组中继续查找,若相等则直接返回;代码:/** * 二分查找 - 循环方式 * @param arr * @param target * ...

2018-04-07 12:06:17 152

原创 java直接插入排序算法

原理:给定数组arr假设前两个元素已经排序完成,然后第三个元素和已经排好序的进行比较,符合条件并插入,直到最后一个元素比较完成,插入到排序队列中;代码:/** * 升序 * @param arr * @return */ public static int[] insertionSort(int[] arr) { int tmp = ...

2018-04-07 11:13:04 367

原创 java冒泡排序算法

原理:通过比较给定数组中两个相邻的元素大小来进行位置互换,达到排序的目的;代码:/** * 升序 * @param arr * @return */ public static int[] bubblingSort(int[] arr) { int tmp = 0; for (int i=1; i<arr.len...

2018-04-07 11:01:37 127

转载 Linux安装 Mysql5.7

8 下载 mysql57-community-release-el7-8.noarch.rpm 的 YUM 源:wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm9 安装 mysql57-community-release-el7-8.noarch.rpm:rpm -ivh mysql57-co

2017-12-08 17:45:07 125

转载 Kafka 介绍

简介Apache Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。Apache Kafka与传统消息系统相比,有以下不同:它被设计为一个分布式系统,易于向外扩展;它同时为发布和订阅提供高吞吐量;它支持多订阅者,当失败时能自动平衡消费者

2017-12-08 11:15:37 168

转载 Dubbo 介绍

Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。主要核心部件: Remoting: 网络通信框架,实现了 sync-over-async 和 request-response 消息机制.RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能.Re

2017-12-08 11:14:03 155

转载 Mycat 介绍及使用

1、   MyCAT概述1.1 背景随着传统的数据库技术日趋成熟、计算机网络技术的飞速发展和应用范围的扩充,数据库应用已经普遍建立于计算机网络之上。这时集中式数据库系统表现出它的不足:(1)集中式处理,势必造成性能瓶颈;(2)应用程序集中在一台计算机上运行,一旦该计算机发生故障,则整个系统受到影响,可靠性不高;(3)集中式处理引起系统的规模和配置都不够灵活,

2017-12-08 11:11:39 926

原创 MongoDB操作-备份和恢复

Mongodb数据库操作-备份 恢复 导出 导入mongodb数据备份和恢复主要分为二种:一种是针对库的mongodump和mongorestore,一种是针对库中表的mongoexport和mongoimport。一、 mongodump备份数据库1. 常用命令格式mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c

2017-12-08 10:55:50 15642 1

原创 MongoDB 切换方案

要解决问题: Mongo每天数据增量太大   准备2台mongo做轮转, 实施轮转可能需要考虑的问题如下 :  一、    1、保持目前2台mongo的规模,1台做冷备          对于查询需求:          1)、查询历史 , 可以开放权限          2)、查询当天记录 需要控制,避免加索引影响写的效率    2、再加一套mon

2017-12-07 17:45:38 588

空空如也

空空如也

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

TA关注的人

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