2019年4月13日

CountDownLatch、CyclicBarrier、Semaphore的区别

摘要: 在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就学习一下这三个辅助类的用法。 在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch, 阅读全文

posted @ 2019-04-13 19:38 hadley2012 阅读(311) 评论(0) 推荐(0) 编辑

2018年12月1日

Java最小堆解决TopK问题

摘要: TopK问题是指从大量数据(源数据)中获取最大(或最小)的K个数据。 TopK问题是指从大量数据(源数据)中获取最大(或最小)的K个数据。 TopK问题是指从大量数据(源数据)中获取最大(或最小)的K个数据。 TopK问题是指从大量数据(源数据)中获取最大(或最小)的K个数据。 TopK问题是个很常 阅读全文

posted @ 2018-12-01 17:10 hadley2012 阅读(419) 评论(0) 推荐(0) 编辑

2018年11月18日

【转载】缓存穿透,缓存击穿,缓存雪崩解决方案分析

摘要: 前言 设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。 缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时, 阅读全文

posted @ 2018-11-18 21:57 hadley2012 阅读(208) 评论(0) 推荐(0) 编辑

缓存雪崩问题及处理方案

摘要: 一、什么是缓存雪崩 一、什么是缓存雪崩 一、什么是缓存雪崩 一、什么是缓存雪崩 缓存雪崩就是指缓存由于某些原因(比如 宕机、cache服务挂了或者不响应)整体crash掉了,导致大量请求到达后端数据库,从而导致数据库崩溃,整个系统崩溃,发生灾难。 下面的就是一个雪崩的简单过程: 1、redis集群彻 阅读全文

posted @ 2018-11-18 21:56 hadley2012 阅读(4198) 评论(0) 推荐(1) 编辑

2018年11月17日

memcached 缓存数据库应用实践

摘要: 1.1 数据库对比 缓存: 将数据存储到内存中,只有当磁盘胜任不了的时候,才会启用缓存 缺点:断电数据丢失(双电),用缓存存储数据的目的只是为了应付大并发的业务。 数据库: mysql(关系型数据库,能够保证数据一致性,保证数据不丢失,当因为功能太多,导致性能不高) 数据参考 缓存数据库: memc 阅读全文

posted @ 2018-11-17 15:31 hadley2012 阅读(145) 评论(0) 推荐(0) 编辑

2018年10月19日

Redis分布式锁的正确实现方式

摘要: 分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如 阅读全文

posted @ 2018-10-19 22:21 hadley2012 阅读(146) 评论(0) 推荐(0) 编辑

2018年9月23日

JVM垃圾回收--年轻代、年老点和持久代(转)

摘要: 关键字约定 Young generation –>新生代 Tenured / Old Generation –>老年代 Perm Area –>永久代 年轻代: 所有新生成的对象首先都是放在年轻代的。年轻代的目标就是尽可能快速的收集掉那些生命周期短的对象。年轻代分三个区。一个Eden区,两个 Sur 阅读全文

posted @ 2018-09-23 11:15 hadley2012 阅读(658) 评论(0) 推荐(0) 编辑

2018年9月22日

策略模式—Java实现(转)

摘要: 1. 现实需求 客户有了新的需求,这时我们直接新增策略即可,改很少的代码。基本符合我们面向对象原则中的开闭原则(对扩展开放,对修改关系),实现了高内聚低耦合。 2. 策略模式定义 策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 3. 阅读全文

posted @ 2018-09-22 16:44 hadley2012 阅读(4648) 评论(0) 推荐(0) 编辑

2018年8月31日

(转) Redis哨兵的详解

摘要: 1 哨兵的作用 1 哨兵的作用 1 哨兵的作用 1 哨兵的作用 哨兵是redis集群架构中非常重要的一个组件,主要功能如下: 1. 集群监控:负责监控redis master和slave进程是否正常工作 2. 消息通知:如果某个redis实例有故障,那么哨兵负责发送消息作为报警通知给管理员 3. 故 阅读全文

posted @ 2018-08-31 16:50 hadley2012 阅读(189) 评论(0) 推荐(0) 编辑

2018年8月29日

Hibernate中1+N问题以及解决方法

摘要: 1. Hibernate中的1+N问题描述 在多对一关系中,当我们需要查询多的一方对应的表的记录时,可以用一条sql语句就能完成操作。然而,在多的一方的实体类中的@ManyToOne标注的fetch的默认值是fetchType.EAGER,这时,hibernate除了发出查询多的一方对应的表的记录的 阅读全文

posted @ 2018-08-29 23:32 hadley2012 阅读(145) 评论(0) 推荐(0) 编辑

导航