应用侧缓存

除了前面讨论的数据侧缓存之外,API设计者也可以选择使用一些应用侧缓存。例如,耗时计算的结果可以存储在缓存中,这样性能就比每次请求好。为了实现这个目标,有大量流行的可选项:

  • Memcachedhttp://memcached.org):这是实现分布式缓存最大众的选择。Memcached是免费,开源,高性能的缓存解决方案,它已经被用于许多大型可扩展系统。它对大多数流行的语言提供了简单,通用API。

  • Redishttp://redis.io):只是一个之于Memcached更新,更现代化的选择。它是一个先进键值对缓存。除了它的缓存能力,Redis也提供计算的特性。它提供比Memcached更高的速度和更高级的功能。

  • Hazelcasthttp://hazelcast.org):这是一个开源的驻于内存的数据格。它通过提供简单的APi和直接明了的部署策略简化了分布式计算。Hazelcast也提供了Memcached的客户端库,因此使用Memcached集群可以很容易改写为Hazelcast集群。

  • Ehcache:如前所述,Ehcache提供了集群缓存能力。对于中小型系统扩展部署它是非常流行的解决方案。

  • Riakhttp://basho.com/products/#riak):这是一个分布式的NoSQL键值对数据仓库,提供高可用和容错。数据可以被存储于内存,硬盘,或者同时存储于两者。Riak是用Erlan编写的。为了保证数据强一致性,Riak牺牲了一定的性能。

  • Aerospikehttp://www.aerospike.com):这是一个开源,实时NoSQL数据库和键值仓库。这个快速优化,驻于内存的缓存解决方案是用C写的,在性能和花费之间提供了很好的平衡。

你要选择哪个解决方案取决于很多方面,如性能要求,数据一致性,容错和花费等。然而,不管哪种解决方案,给Web服务添加一层有效的分布式缓存到应用侧将给设计者必要工具来集群化他们的服务。

results matching ""

    No results matching ""