互联网项目一般具有高并发的特点,并且在响应速度上有较高的要求,一般都使用缓存来提高系统的吞吐量及响应时间,下面就介绍一下作者用过的几个缓存
Memcache
memcached是一个高性能分布式内存对象缓存系统,性能高效,使用方便,尤其是分布式部署上,实现起来很easy,但功能相对单一,只支持字符串类型的数据,所以在使用过程中一般需要结合序列化协议。一般只能用作缓存,当memcache服务器重启之后,数据就会丢失。如果仅作缓存使用,减轻数据库压力,提高响应速度,memcache还是一个很好的选择。需要注意的是数据穿透对系统的影响。
redis
总体上来说redis是一个非常优秀的缓存服务器,具有高效的存取速度,高并发的吞吐量,丰富的数据类型,应用场景非常多!常见的是用作数据缓存,减轻数据库负载,提高系统响应速度,也有用其实现分布式队列,分布式锁,基于redis做消息中间件等。
guava cache
guava cache是谷歌guava库提供的一个本地缓存系统,应用场景具有一定的局限性,很难实现分布式部署。但是对于单一机器系统,或者无状态服务来讲,仍然是一个不错的选择。guava cache缓存的数据都是放在内存中的,所以使用起来,需要消耗一定的机器内存。