《构建高性能web站点》分布式缓存
分布式缓存这个应该算是目前互联网技术上最热的地方,因为现在的网站,越来越偏向于全动态话,但是数据库不可能能抵抗住如此强悍的查询,所以不得不在db前面挡一层cache,这也便是目前互联网从业者最主要的设计点之一。
memory is another disk,这个是分布式缓存的最核心的地方,就是把数据放在内存里面。为什么放在内存里面,首先这个数据不能放在cpu以及及寄存器吧,其次磁盘太慢了,无法接受,就只能在这个中间的就是内存了,但是内存又一个天然的问题,就是宕机之后数据丢失,这个算是互联网架构师们最头疼的设计点之二。
当前最火web2.0 比如facebook、weibo,都采用了这种简单的架构,就是存储+cache+前端脚本的模式,而且,他们都不约而同地用了同一种技术memcached这种key-value的缓存方式。
key-value这种缓存方式最主要的好处就是它简单且高效,水平sharding非常容易,只要控制地好,啥问题都不会是大问题。
当前最主要的nosql 缓存开源软件,我的理解,nosql的东西,分两种,一种算数据库,一种算缓存,最大的区别就是是否把数据放到硬盘中,放到硬盘中就是数据库,否则就只能是cache。当然目前最流行的设计是数据库+cache,比如redis,就是自己维护一些内存的缓存,又写入的时候可选择定时写入硬盘或则事实写入硬盘。
设计分布式缓存最主要也是最重要的两点:
- 要预算缓存的大小以及水平sharding的复杂度
- 不要丢失数据
如果涉及到跨IDC那得让程序读取本地的缓存而不是千里迢迢去遥远的地方要一个数据。
先写到这里,以后补充具体的。
本站遵循CC协议署名-非商业性使用-相同方式共享
转载请注明来自:何跃的博客
相关推荐
- 《构建高性能web站点》–服务器并发处理能力(3)
- Posted on 03月31日
- bloom filter的开源实现程序memcached bloom filter
- Posted on 11月06日
- 负载均衡《构建高性能web站点》
- Posted on 05月04日
- 2013年9月1日孤独骑行密云水库
- Posted on 09月22日