2.1分布式缓存
分布式缓存的发展历程
高并发下 ,大量读写请求涌向数据库,磁盘的处理的速度与内存的处理速度显然不是一个量级,从减轻数据库压力和提高系统的响应速度,一般会在数据库之前加一层缓存,大量的使用本地缓存不同个节点会保存相同的数据,就涉及到缓存的极大浪费,缓存系统应运而生。
memcache介绍
1、使用key-value形式存储和访问数据库,在内存中维护一张巨大的hashtable表,使得数据查询的时间复杂度降低到O(1),保证了对数据的高性能访问。
2、内存的空间有限,没有足够的空间时,使用LRC(Least Recently Used)算法,将最近不常访问的数据淘汰掉。
3、存储支持序列化,反序列化。
4、(1)分布式实现,由客户端实现,比较点单的实现是根据缓存的key进行Hash,即hash(key)%N,N表示N台缓存服务器,缺点就是一台宕机,N变化,影响了key的重新分布,造成雪崩效应。
(2)consistent Hash能一定程度的改善这个问题,就是将hash函数的值空间组织成一个环状,顺时针组织,然后对相应的服务器节点进行hash,映射到hash环上,当计算key对应的hash值在环上位置,根据consistent Hash算法,顺时针方向,发现介于node1与node2之间的时候,会映射到node2,可减少和增加缓存的会减少影响.。
5、分布式session
session存储在缓存集群上,保证读写性能,安全性上,便于利用缓存的失效机制,缺点是,重新启动,会话丢失。