自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (15)
  • 收藏
  • 关注

原创 分布式笔记

1、实现分布式锁的四种方法:(1)数据库的唯一索引获得锁时向表中插入一条记录,释放锁时删除这条记录。(2)Redis的SETNX指令与数据库唯一索引类似,但是redis可以设置过期时间,用于超时释放。缺点如果redis发生单点故障,则分布式锁无法使用。(3)Redis的RedLock算法使用多个Redis实例来实现分布式锁(4)Zookeeper的有序节点 ...

2019-03-30 18:00:58 175

原创 面试资料

https://github.com/CyC2018/CS-Notes

2019-03-30 10:28:29 193

转载 算法 | 向量空间:如何实现一个简单的音乐推荐系统? | 极客时间

很多人都喜爱听歌,以前我们用 MP3 听歌,现在直接通过音乐 App 在线就能听歌。而且,各种音乐 App 的功能越来越强大,不仅可以自己选歌听,还可以根据你听歌的口味偏...

2019-03-24 23:05:35 224

转载 MySQL | 普通索引和唯一索引,应该怎么选择?

在前面的基础篇文章中,我给你介绍过索引的基本概念,相信你已经了解了唯一索引和普通索引的区别。今天我们就继续来谈谈,在不同的业务场景下,应该选择普通索引,还是唯一索引?假设...

2019-03-24 23:05:35 564

转载 Java并发编程| Java并发工具类

我们通常所说的并发包也就是 java.util.concurrent 及其子包,集中了 Java 并发的各种基础工具类,具体主要包括几个方面:提供了比 synchroni...

2019-03-24 23:05:35 193

原创 Mybatis笔记

1 使用mybatis注解@MapperScan定义配置扫描位置@Mapper定义接口继承并重写BaseTypeHandler来定义数据列的类型转换mybatis Generator.xmk可以自动生成实体类以及mapper类mybatis PageHelper分页工具...

2019-03-23 16:17:29 120

转载 算法|LRU淘汰算法

缓存是一种提高数据读取性能的技术,在硬件设计、软件开发中都有着非常广泛的应用,比如常见的 CPU 缓存、数据库缓存、浏览器缓存等等。缓存的大小有限,当缓存被用满时,哪些数...

2019-03-19 23:24:54 303

转载 Java并发编程|ThreadLocal深度解析

ThreadLocal是什么ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场...

2019-03-19 23:24:54 168

转载 MySQL | 行锁功过:怎么减少行锁对性能的影响?

MySQL 的行锁是在引擎层由各个引擎自己实现的。但并不是所有的引擎都支持行锁,比如 MyISAM 引擎就不支持行锁。不支持行锁意味着并发控制只能使用表锁,对于这种引擎的...

2019-03-19 23:24:54 305

原创 秒杀系统设计要点

1、概述秒杀其实主要解决的是两个问题,一个是并发读,一个是并发写。秒杀系统本质上是一个满足大并发、高性能和高可用的分布式系统。在整个用户请求路径上从浏览器到服务端我们要遵循几个原则:用户请求的数据尽量少,从而减少cpu消耗 请求数尽量少:合并CSS和JavaScript文件 路径尽量短,减少节点消耗:多个强依赖的应用合并部署,简化调用方式 依赖尽量少:高优先级的系统减少对低优先级...

2019-03-17 11:34:06 446

转载 MySQL| 行锁功过:怎么减少行锁对性能的影响?

在上一篇文章中,我跟你介绍了 MySQL 的全局锁和表级锁,今天我们就来讲讲 MySQL 的行锁。MySQL 的行锁是在引擎层由各个引擎自己实现的。但并不是所有的引擎都支...

2019-03-16 22:47:31 773

转载 算法| 初识动态规划:如何巧妙解决“双十一”购物时的凑单问题?

淘宝的“双十一”购物节有各种促销活动,比如“满 200 元减 50 元”。假设你女朋友的购物车中有 n 个(n>100)想买的商品,她希望从里面选几个,在凑够满减条...

2019-03-16 22:47:31 1462

转载 Java并发编程|Java SE1.6中的Synchronized

1 引言在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,...

2019-03-16 22:47:31 86

转载 记一次线上FULL GC排查经历

背景:线上服务,启动后很快必定FGC一次,随后GC变正常。服务器上JDK版本为jdk1.8.0_66。启动参数为:大概解释一下:初始堆8G,最大堆8G,年轻代3G,线程栈...

2019-03-16 22:47:31 230

转载 MySQL| 全局锁和表锁 :给表加个字段怎么有这么多阻碍?

今天我要跟你聊聊 MySQL 的锁。数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些...

2019-03-13 23:12:03 678

转载 算法| 贪心算法:如何用贪心算法实现Huffman压缩编码?

今天,我们来学习一下贪心算法(greedy algorithm)。贪心算法有很多经典的应用,比如霍夫曼编码(Huffman Coding)、Prim 和 Kruskal ...

2019-03-13 23:12:03 256

转载 Java并发编程 | 一不小心就死锁了,怎么办?

试想互联网支付盛行的当下,8 亿网民每人每天一笔交易,每天就是 8 亿笔交易;每笔交易都对应着一次转账操作,8 亿笔交易就是 8 亿次转账操作,也就是说平均到每秒就是近 ...

2019-03-13 23:12:03 345

转载 MySQL | 深入浅出索引(下)

在上一篇文章中,我和你介绍了 InnoDB 索引的数据结构模型,今天我们再继续聊聊跟 MySQL 索引有关的概念。在开始这篇文章之前,我们先来看一下这个问题:在下面这个表...

2019-03-10 13:12:06 271

转载 数据结构 | B+树:MySQL数据库索引是如何实现的?

作为一个软件开发工程师,你对数据库肯定再熟悉不过了。作为主流的数据存储系统,它在我们的业务开发中,有着举足轻重的地位。在工作中,为了加速数据库中数据的查找速度,我们常用的...

2019-03-10 13:12:06 519

转载 Java并发编程 | Java内存模型:看Java如何解决可见性和有序性问题

上一期我们讲到在并发场景中,因可见性、原子性、有序性导致的问题常常会违背我们的直觉,从而成为并发编程的 Bug 之源。这三者在编程领域属于共性问题,所有的编程语言都会遇到...

2019-03-10 13:12:06 291

转载 一次生产的 JVM 优化案例

背景GC数据GC日志分析与优化背景生产环境有二台阿里云服务器,均为同一时期购买的,CPU、内存、硬盘等配置相同。具体配置如下:节点CPU内存硬盘其它A2CPU4G普通云盘...

2019-03-10 13:12:06 121

原创 在整数数组中找第二大的数

public static int getSecondMax(int[] a) throws Exception { if(a == null || a.length <=1){ throw new Exception("没有第二大的值"); } int max1=Integer.MIN_VALUE,max2=Inte...

2019-03-08 15:38:27 500

转载 数据结构和算法|堆的应用

搜索引擎的热门搜索排行榜功能你用过吗?你知道这个功能是如何实现的吗?实际上,它的实现并不复杂。搜索引擎每天会接收大量的用户搜索请求,它会把这些用户输入的搜索关键词记录下来...

2019-03-07 22:48:22 592

转载 MySQL| 深入浅出索引(上)

一句话简单来说,索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。一本 500 页的书,如果你想快速找到其中的某一个知识点,在不借助目录的情况下,那我估计你可得...

2019-03-07 22:48:22 323

转载 并发编程 | 可见性、原子性和有序性问题:并发编程Bug的源头

你我都知道,编写正确的并发程序是一件极困难的事情,并发程序的 Bug 往往会诡异地出现,然后又诡异地消失,很难重现,也很难追踪,很多时候都让人很抓狂。但要快速而又精准地解...

2019-03-07 22:48:22 365 1

原创 mongoDB笔记

1、文档型数据库mongodb:它是一个内存数据库,数据都是放在内存里面的。对数据的操作大部分都在内存中,但mongodb并不是单纯的内存数据库。持久化方式:mongodb的所有数据实际上是存放在硬盘的,所有要操作的数据通过mmap的方式映射到内存某个区域内。然后,mongodb就在这块区域里面进行数据修改,避免了零碎的硬盘操作。至于mmap上的内容flush到硬盘就是操作...

2019-03-07 17:48:02 137

原创 redis笔记

1、Redis 有哪些功能?数据缓存功能 分布式锁的功能 支持数据持久化 支持事务 支持消息队列: 简单地使用PUBLISH和SUBSCRIBE命令实现的发布订阅无法实现消息可靠送达。2、redis哨兵模式Redis Sentinel是redis的一种高可用方案,可以实现监控、通知、自动故障转移、服务发现(通过哨兵发现master)JedisSentinelPool3、r...

2019-03-06 11:22:18 140

原创 Zookeeper笔记

1、zookeeper 都有哪些功能?集群管理:监控节点存活状态、运行请求等。 主节点选举:主节点挂掉了之后可以从备用的节点开始新一轮选主,主节点选举说的就是这个选举的过程,使用 zookeeper 可以协助完成这个过程。 分布式锁:zookeeper 提供两种锁:独占锁、共享锁。独占锁即一次只能有一个线程使用资源,共享锁是读锁共享,读写互斥,即可以有多线线程同时读同一个资源,如果要使用写...

2019-03-06 11:13:35 203

原创 RabbitMQ学习笔记

0、消息中间件的作用(1)解耦(2)冗余(消息冗余存储)(3)扩展性(4)削峰(4)可恢复性(5)缓冲(6)异步(7)顺序保证(RabbitMQ不支持)1、RabbitMQ交换器类型:(1)fanout :消息放到与交换机绑定的队列中。(2)direct:消息发送到bindingKey和routingKey完全匹配的队列中(3)topic:消息发送到b...

2019-03-06 10:47:03 302

原创 多线程笔记

1、多线程中 synchronized 锁升级的原理是什么?synchronized 锁升级原理:在锁对象的对象头里面有一个 threadid 字段,在第一次访问的时候 threadid 为空,jvm 让其持有偏向锁,并将 threadid 设置为其线程 id,再次进入的时候会先判断 threadid 是否与其线程 id 一致,如果一致则可以直接使用此对象,如果不一致,则升级偏向锁为轻量级锁,...

2019-03-05 19:33:35 189

转载 数据结构 | 堆和堆排序

我们今天讲另外一种特殊的树,“堆”(HeapHeap)。堆这种数据结构的应用场景非常多,最经典的莫过于堆排序了。堆排序是一种原地的、时间复杂度为 O(nlogn)O(nl...

2019-03-05 08:26:31 420

转载 MySQL | 事务隔离

提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务。最经典的例子就是转账,你要给朋友小王转 100 块钱,而此时你的银行卡只有 100 块钱。转账过程具体到...

2019-03-05 08:26:31 261

转载 数据结构之红黑树:为什么工程中都用红黑树这种二叉树?

上两节,我们依次讲了树、二叉树、二叉查找树。二叉查找树是最常用的一种二叉树,它支持快速插入、删除、查找操作,各个操作的时间复杂度跟树的高度成正比,理想情况下,时间复杂度是...

2019-03-02 08:24:14 432

转载 MySQL|一条SQL查询语句是如何执行的?

我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,对于 MySQL 的学习也是这样。平时我们使用数据库,看到的通常都...

2019-03-02 08:24:14 185

apache的dockerfile

这里边的文件是用来构建apache的docker镜像的,大家可以放心使用

2018-07-25

apache镜像dockerfile

这个是用于构建docker镜像的dockerfile文件,构建的是apache镜像

2018-07-25

zookeeper安装包

zookeeper的安装包,用于安装zookeeper,版本为3.4.12

2018-07-12

数据库学习笔记

这是我自己平时学习到的mysql相关知识的一个总结,希望对大家有用

2018-07-01

网络磁盘性能测试工具

自己搭建的一个django管理平台,磁盘和网络性能测试脚本,用于排查网络以及硬件问题

2018-06-25

Java8语法总结

学习java8新特性,尤其是lambda和流式编程,学习过程中总结的笔记

2018-06-04

docker-ce 17.12.0离线安装包套件

docker-ce离线安装包,已知适用于ubuntu16.04,可以放心使用

2018-05-23

单例模式与垃圾回收机制

探索讨论单例模式会不会被垃圾回收机制回收,结论是HotSpot中不会

2018-05-13

单例模式代码实现

这个讲的是单例模式的多种不同实现方式,希望对单例感兴趣的同学看看

2018-05-13

docker安装包-amd64-ubuntu

dockerlasjfdolwsajfldskjalgewiuogjds东方萨规定撒大概撒旦甘洒规定萨嘎

2018-04-04

IP地址、子网划分相关知识

IP地址相关知识,IP地址分类、IP子网划分等等知识的笔记

2018-03-24

网络知识学习笔记

自己学习网络知识尤其是传输层和应用层的一些协议的笔记

2018-03-24

TCP/IP和HTTP协议详解

学习TCP/IP协议基础知识,了解三次握手和四次挥手的含义的意义

2018-03-23

linux学习笔记-2

学习linux的笔记,记录学习的命令和用法,就这样,还不够吗

2018-03-23

Linux学习笔记

自己写的linux笔记,记录学习过程,便于温故而知新,记录了常见的linux命令

2018-03-17

空空如也

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

TA关注的人

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