1.1.1.15 Cache
ajian005
这个作者很懒,什么都没留下…
展开
-
云计算
<br /> 关键字 云计算 、分布式、基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)、<br /><br />1什么是云计算?<br /> <br />云计算(英文:Cloud computing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。整个运行方式很像电网。<br />云计算是继1980年代大型计算机到客户端-服务器的大转变之后的又一种巨变。用户不再需要了解“云”中基础设施的细原创 2011-02-17 16:04:00 · 1456 阅读 · 0 评论 -
Java Collections Framework之LinkedHashMap源码分析(基于JDK1.6)(??)
注:应用于Cache时,可以重写 removeEldestEntry(Map.Entry) 方法来实施策略,以便在将新映射关系添加到映射时自动移除旧的映射关系。 LinkedHashMap类似于HashMap,但是迭代遍历它时,取得“键值对”的顺序是插入次序,或者是最近最少使用(LRU)的次序。只比HashMap慢一点;而在迭代访问时反而更快,因为它使用链表维护内部次序(HashMap转载 2014-01-16 15:39:09 · 1120 阅读 · 0 评论 -
Java concurrent Framework并发容器之ConcurrentHashMap(Doug Lea 非JDK版)源码分析
在7月份的那期 Java理论与实践(“并发集合类”)中,我们简单地回顾了可伸缩性的瓶颈,并讨论了怎么用共享数据结构的方法获得更高的并发性和吞吐量。有时候学习的最好方法是分析专家的成果,所以这个月我们将分析 Doug Lea 的util.concurrent 包中的 ConcurrentHashMap 的实现。JSR 133 将指定 ConcurrentHashMap 的一个版本,该版本针对转载 2014-01-28 22:40:36 · 1330 阅读 · 0 评论 -
并发导论
原文出处: ifeve 寻寒(@小疯子诗人) 写在前面的话 由于之前工作中的疏忽,在使用Java多线程并发的时候出了问题,遂决心全面学习并发相关知识。写作本文的意图只是希望在写作过程中把想不清楚或是一时无法掌握的地方反复揣摩记录下来。写作本文参考的各种资料较多,抱歉的是文末的参考文献中对一些叫不上名字或没有出处的资料文献并未列举出来。由于本人是初入职场的菜鸟,更是并发的门外汉,转载 2014-01-28 17:50:30 · 1496 阅读 · 0 评论 -
Java collections framework(Java容器框架)(基于维基百科补充)
Java collections frameworkFrom Wikipedia, the free encyclopediaJump to: navigation, searchclass- and interface hierarchy of java.util.MapThe Java collections framework (JCF)原创 2014-01-14 13:58:18 · 2516 阅读 · 0 评论 -
Java concurrent Framework并发容器之ArrayBlockingQueue(1.6)源码分析
ArrayBlockingQueue简介public class ArrayBlockingQueue extends AbstractQueue implements BlockingQueue, Serializable一个由数组支持的有界阻塞队列。此队列按 FIFO(先进先出)原则对元素进行排序。队列的头部 是在队列中存在时间最长的元素。队列的尾部 是在队列中存在时间最短的元原创 2014-02-01 11:27:29 · 1181 阅读 · 0 评论 -
软件与Cache
<br />Cache是提高CPU性能的一种技术手段,通过Cache存储器把程序频繁用到的指令和数据存储起来,等再次访问该指令或数据时CPU可以直接从Cache中读取而不用访问主存从而能提高程序运行的效率。<br />Cache背后的理论基础是程序运行的“局部性”原理, <br />“程序局部性原理”包括 时间局部性 和 空间局部性。<br />时间局部性的主要表现为刚被访问过的指令或数据很可能在最近的将来再次被访问,编程语言的循环结构是时间局部性产生的主要原因。<br />空间局部性描述的是:原创 2011-02-17 16:50:00 · 1376 阅读 · 0 评论 -
Cache高速缓存guava-libraries Cache
Guava缓存器源码分析——CacheBuilder CacheBuilder作为LoadingCache 与 Cache实例的创建者,具有以下特征: 1、自动载入键值至缓存; 2、当缓存器溢出时,采用最近最少使用原则进行替换。 3、过期规则可基于最后读写时间。 4、设置键值引用级别。 5、元素移转载 2014-01-31 10:15:40 · 2739 阅读 · 1 评论 -
Java Collection Framework扩展Apache Common Collections介绍
http://www.cnblogs.com/forstudy/archive/2012/04/05/2433853.html原创 2014-01-16 18:32:11 · 1686 阅读 · 0 评论 -
堆内内存(in heap cache/memory)还是堆外内存(off heap cache/memory)
堆内内存(in heap cache/memory)还是堆外内存(off heap cache/memory)? 没有GC的map OpenHFT公司提供三个开源库:Chronicle Queue、Chronicle Map和Thread Affinity,这些库可以帮助开发人员使用堆外内存来保存数据。采用堆外内存有很多好处,同时也带来挑战 堆内内存(in h原创 2016-12-01 17:40:26 · 3667 阅读 · 0 评论 -
The j.u.c Synchronizer Framework翻译
Java concurrent Framework concurrent.lock并发之AbstractQueuedSynchronizer源码分析 (先设个坑,研读源码后补充)转载 2014-03-02 10:28:21 · 1524 阅读 · 0 评论 -
Java concurrent Framework并发容器之ConcurrentHashMap(JDK5,6,7,8)源码分析&ConcurrentSkipListMap
ConcurrentHashMapConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和HashTable功能相同但是线程安全的方法。ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够将锁的粒度保持地尽量地小,不用对整个ConcurrentHashMap加锁。ConcurrentHashMap转载 2014-01-29 15:27:59 · 1265 阅读 · 0 评论 -
Java Collections Framework之HashSet及LinkedHashSet源码分析(基于JDK1.6)
Java容器类的用途是“保存对象”,分为两类:Map——存储“键值对”组成的对象;Collection——存储独立元素。Collection又可以分为List和Set两大块。List保持元素的顺序,而Set不能有重复的元素。 本文分析Set中最常用的HashSet类,并简单介绍和对比LinkedHashSet。 首先对Set接口进行简要的说明。 存入Set的每转载 2014-01-15 17:51:27 · 1285 阅读 · 0 评论 -
Java Collections Framework之LinkedList源码分析(基于JDK1.6)
LinkedList 或 ArrayList结构改变包括:向ArrayList添加、删除元素,或者明确的手动修改数组大小。如果仅仅是给一个元素赋值,不属于结构的改变。 结构改变引起的问题: 可能导致Iterator报ConcurrentModificationException异常。 注意:当ArrayList使用了iterator()方法产生自身对应的Iterato转载 2014-01-15 17:22:24 · 1074 阅读 · 0 评论 -
[摘选]memcached全面剖析—— 客户端选择(一致性哈希算法)
<br />参考:memcached完全剖析–1. memcached的基础 http://tech.idv2.com/2008/07/10/memcached-001/<br /> <br />memcached本身是集中式的缓存系统,要搞多节点分布,只能通过客户端实现。<br />memcached的分布算法一般有两种选择:<br />1、hash模余算法:<br /> 根据hash(key)的结果,模连接数的余数决定存储到哪个节点(键的整数哈希值,根据服务器个数取余来选定服务器节点),也就转载 2011-02-17 17:07:00 · 1277 阅读 · 0 评论 -
系统构架设计应考虑的因素
<br />本文从程序的运行时结构和源代码的组织结构两个方面探讨了系统构架设计应考虑的各种因素,列举了系统构架设计文档应考虑的一些问题。<br /><br /> 一、与构架有关的几个基本概念:<br /> <br /> 1、模块(module):一组完成指定功能的语句,包括:输入、输出、逻辑处理功能、内部信息、运行环境(与功能对应但不是一对一关系)。<br /> <br /> 2、组件(component):系统中相当重要的、几乎是独立的可替换部分,它在明确定义的构架环转载 2011-02-17 17:22:00 · 1307 阅读 · 0 评论 -
系统架构设计应考虑的问题
<br />本文从程序的运行时结构和源代码的组织结构两个方面探讨了系统构架设计应考虑的各种因素,列举了系统构架设计文档应考虑的一些问题。<br /><br /> 一、与构架有关的几个基本概念:<br /> <br /> 1、模块(module):一组完成指定功能的语句,包括:输入、输出、逻辑处理功能、内部信息、运行环境(与功能对应但不是一对一关系)。<br /> <br /> 2、组件(component):系统中相当重要的、几乎是独立的可替换部分,它在原创 2011-02-17 17:25:00 · 3766 阅读 · 0 评论 -
大型高并发高负载web应用系统架构-缓存架构策略
<br />目前在网站的架构构成中普遍使用到缓存来提供WEB应用的性能,由于网站规模的不同,分别存在如下几种类型的缓存架构。<br />(1)单机缓存<br />(2)简单分布式缓存<br />(3)使用复制方式的缓存集群<br />(4)使用散列方式的缓存集群<br />(5)高性能高、可靠的缓存集群<br />下面对于上述几种缓存策略的实际应用的适用情况以及优缺点进行详细分析,当然并没有一个缓存的教条存在,有的只是参考案例,对于具体的应用来讲要具体分析。<br /> <br />(1)单机缓存<br转载 2011-02-17 16:57:00 · 817 阅读 · 0 评论 -
大型网站架构演变和知识体系
之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么一个网站需要那么复杂的技术,于是有了写这篇文章的想法,在这篇文章中将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的知识体系,希望能给想从事互联网行转载 2011-11-02 18:11:40 · 742 阅读 · 0 评论 -
常用缓存算法简介
没有人能说清哪种缓存算法优于其他的缓存算法。(以下的几种缓存算法,有的我也理解不好,如果感兴趣,你可以Google一下)Least Frequently Used(LFU):大家好,我是 LFU,我会计算为每个缓存对象计算他们被使用的频率。我会把最不常用的缓存对象踢走。Least Recently User(LRU):我是LRU缓存算法,我把最近最少使用的缓存对象给踢走。我总是转载 2011-11-07 15:44:10 · 1067 阅读 · 0 评论 -
Handler-Socket Plugin for MySQL – SQL的功能、NoSQL的性能
记得半年多前写过MySQL vs NoSQL ,且一直以来我比较坚持用数据库存储K/V数据,因为不只是对数据安全等能提供保障,主要是发现大部分系统的qps根本就没那么高,能上4k的水平已经很少了,这点MySQL完全可以满足,因为优化好的K/V请求,在MySQL的SQL层上能实现每核心5k左右的qps,而这一数据在HandlerSocket出来之后,得到了更大的提升。HandlerSocket转载 2011-11-29 21:47:05 · 941 阅读 · 0 评论 -
集群中几种session同步解决方案的比较
集群中session安全和同步是个最大的问题,下面是我收集到的几种session同步的方案,希望能通过分析其各自的优劣找出其适应的场景。1. 客户端cookie加密这是我以前采用的方式,简单,高效。比较好的方法是自己采用cookie机制来实现一个session,在应用中使用此session实现。问题:session中数据不能太多,最好只有个用户id。参考实现:http://roll转载 2011-06-01 23:24:00 · 1252 阅读 · 0 评论 -
百度、新浪、Mixi、Apache社区赞助的开源key-value分布式存储系统[原创]
key-value分布式存储系统查询速度快、存放数据量大、支持高并发,非常适合通过主键进行查询,但不能进行复杂的条件查询。如果辅以Real-Time Search Engine(实时搜索引擎)进行复杂条件检索、全文检索,就可以替代并发性能较低的MySQL等关系型数据库,达到高并发、高性能,节省几十倍服务器数量的目的。以MemcacheDB、Tokyo Tyrant为代表的key-value分布式存转载 2011-12-01 10:32:06 · 2193 阅读 · 0 评论 -
几种负载均衡算法
几种负载均衡算法本地流量管理技术主要有一下几种负载均衡算法:静态负载均衡算法包括:轮询,比率,优先权动态负载均衡算法包括: 最少连接数,最快响应速度,观察方法,预测法,动态性能分配,动态服务器补充,服务质量,服务类型,规则模式。静态负载均衡算法◆轮询(Round Robin):顺序循环将请求一次顺序循环地连接每个服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP 就转载 2011-11-07 15:47:24 · 1329 阅读 · 0 评论 -
jdk1.5新特性 ConcurrentHashMap
曾经研究过jkd1.5新特性,其中ConcurrentHashMap就是其中之一,其特点:效率比Hashtable高,并发性比hashmap好。结合了两者的特点。 集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的转载 2011-06-08 08:52:00 · 966 阅读 · 0 评论 -
Java Collections Framework之HashMap源码分析(基于JDK1.6)
在Java集合类中最常用的除了ArrayList外,就是HashMap了。本文尽自己所能,尽量详细的解释HashMap的源码。一山还有一山高,有不足之处请之处,定感谢指定并及时修正。 在看HashMap源码之前先复习一下数据结构。 Java最基本的数据结构有数组和链表。数组的特点是空间连续(大小固定)、寻址迅速,但是插入和删除时需要移动元素,所以查询快,增加删除慢。链表恰好相反,转载 2014-01-14 22:46:40 · 1512 阅读 · 0 评论 -
可伸缩性, 可用性和稳定性模式 Scalability, Availability & Stability Patterns
Scalability, Availability & Stability Patterns一 自我有要求的读者应该提出问题:(研习:掌握层次:)能力级别:不会(了解)——领会(理解)——熟练——精(why)——通(融汇贯通)1.1 什么是Scalability, Availability&Stability Patterns ? 1.2 以上各个模式都说了些什么?原创 2011-02-17 16:33:00 · 3687 阅读 · 0 评论