分布式缓存

分布式缓存

1、什么是分布式缓存?

在高并发的环境下,大量的I/O处理与CPU的处理速度显然不在同一个数量级,从减轻数据库的压力和提高系统的响应速度两个角度来考虑,因而都会在数据库之前加一层缓存。由于单机的内存资源和承载能力有限,因而可以采用多台服务器来用作缓存,使得多台缓存服务器形同一台,并且不会造成数据重复存放的情况。

2、分布式缓存的好处?

使用分布式缓存,可以在高并发的环境下,减轻数据库的压力,提高系统的响应速度和并发吞吐。

3、如何实现分布式缓存?

分布式缓存的典型代表主要是memcache

Memcache使用key-value键值对的形式存储和访问数据,在内存中维护一张巨大的哈hashtable表,使得对数据的查询的时间复杂度降低到O1),保证了对数据的高性能访问。

当内存中没有足够的空间来存储新数据的时候,采用LRU算法把最近不常访问的数据淘汰掉,从而腾出更多的空间来存储新数据。

Memcache本身并不是一种分布式的缓存系统,它的分布式是由访问它的客户端来实现的。一种比较简单的实现方式是根据的key来进行hash,当后端有N台服务器时,访问的服务器为hash(key)%N,这样就可以将前端的请求均衡地映射到后端的缓存服务器。


4、分布式session

在传统的应用服务器中,如tomact自身所实现的session管理大部分都是基于单机的。对于大型分布式网站来说,支撑业务的远远不止一台服务器,而是一个分布式集群,不用的请求在不同的服务器之间跳转,如何保证各个服务器之间的session同步,从而来保证系统的可靠性。

首先可以将session持久化到DB中,但是这样会使得系统的吞吐量收到很大的影响。另外一种方案是把session统一存储在缓存集群上,如memcache,这样可以保证较高的读写性能。如:前端用户请求经过随机分发后,经过负载均衡算法随机选择一个web server服务器,但服务器随时可能会宕机。因此,此时将session保存在后端的缓存集群中,显得尤为重要,即使是web server宕机,其他的web server也可以通过sessionidcache集群中找到session,这样便实现了session的同步,提高了web server的容错性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值