★针对海量数据的优化主要有两种方法(1)大表拆成小表垂直分表(竖切)---主键在每个分表中都会出现水平分表(横切)---字段一般稳定,而记录不稳定水平分表技术是将一个表拆分成多个表,比较常用的方式是将表中的记录按照某种Hash算法进行拆分,简单的拆分方法如取模方式。同..
分类:
数据库 时间:
2015-04-11 20:59:49
阅读次数:
207
一、Set回顾
一个不包括重复元素(包括可变对象)的Collection,是一种无序的集合。Set不包含满
a.equals(b) 的元素对a和b,并且最多有一个null。
泥瓦匠的记忆宫殿:
1、不允许包含相同元素
2、判断对象是否相同,根据equals方法
二、HashSet
一个按着Hash算法来存储集合中的元素,其元素值可以是NULL。它不能保证元素的排列顺序。同样,H...
分类:
其他好文 时间:
2015-04-09 13:48:24
阅读次数:
222
散列表,又叫哈希表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙。 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通....
分类:
编程语言 时间:
2015-04-03 13:08:26
阅读次数:
165
HashSet类 HashSet是Set接口的典型实现,大多数时候使用Set集合时就是使用这个实现类。HashSet按Hash算法来存储集合中的元素,因此就有很好的存取和查找功能。HashSet具有以下特点:不能保证元素的排列顺序,顺序可能与添加顺序不同。顺序也有可能发生变化。HashSet不是同步...
分类:
编程语言 时间:
2015-04-03 10:52:14
阅读次数:
155
最近在看一些分布式方面的文章,所以就用php实现一致性hash来练练手,以前一般用的是最原始的hash取模做分布式,当生产过程中添加或删除一台memcache都会造成数据的全部失效,一致性hash就是为了解决这个问题,把...
分类:
编程语言 时间:
2015-04-01 17:56:50
阅读次数:
171
本文转载自:http://blog.csdn.net/kongqz/article/details/6695417一、概述 1、我们的memcache客户端使用了一致性hash算法ketama进行数据存储节点的选择。与常规的hash算法思路不同,只是对我们要存储数据的key进行hash计算,分配到不...
分类:
编程语言 时间:
2015-04-01 13:01:14
阅读次数:
192
##分布式缓存问题## 假设我们有一个网站,最近发现随着流量增加,服务器压力越来越大,之前直接读写数据库的方式不太给力了,于是我们想引入Memcached作为缓存机制。现在我们一共有三台机器可以作为Memcached服务...
分类:
编程语言 时间:
2015-04-01 11:33:59
阅读次数:
219
consistent hashing算法早在1997年就在论文Consistent hashing and random trees中被提出,目前在cache系统中应用越来越广泛;1基本场景比如你有N个cache服务器(后面简称cache),那么如何将一个对象object映射到N个cache上呢,你...
分类:
编程语言 时间:
2015-03-19 17:56:19
阅读次数:
149
分布式服务器布置需要使用到hash算法,设节点有N个,普通的哈希算法:key%N,在遇到节点增加和减少的情况下,对于单纯的逻辑计算hash是没有问题的,但如果节点集群提供存储功能,那效果就不理想了。这时候我们的想...
分类:
其他好文 时间:
2015-03-16 14:43:45
阅读次数:
108
HashSet的实现通过Hash表实现的:
添加对象到HashSet的过程:
元素——取出元素的hashcode---通过Hash算法——索引到相应的存储空间;
HashSet的contains方法实现:
参数对象的hashcode值找到相应的存储空间,然后和该空间的对象进行equal比较;...
分类:
编程语言 时间:
2015-03-14 12:29:35
阅读次数:
174