服务器&数据库缓存
之前的文章解释了,为什么使用缓存,前面说了浏览器缓存,现在说服务器缓存和数据库缓存
常用的服务器缓存技术
- Ehcache
- memcache
- redis
- mongodb
Ehcache
EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。
memcache
memcache 是一种高性能、分布式对象缓存系统,最初设计于缓解动态网站数据库加载数据的延迟性,你可以把它想象成一个大的内存HashTable,就是一个key-value键值缓存。Danga Interactive为了LiveJournal所发展的,以BSD license释放的一套开放源代码软件。
redis
是 在memcache之后编写的,大家经常把这两者做比较,如果说它是个key-value store 的话但是它具有丰富的数据类型
mongodb
是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
总结
看了上面的东西,对缓存技术有了初步认知,那么怎么对比和选择适合的那个呢?关注一下几点:
- 支持的数据格式
- 是否支持事务
- 数据是否可以持久化
- 和JAVA框架结合的难度(spring系列)
- 是否支持集群
- 缓存淘汰策略
- 容灾能力(恢复)
- 性能(处理速度和系统资源开销)
- 相关生态是否完善(东西再好,生态圈小开发者使用就很费劲)
好,本文就是对缓存技术做个总体认识,后面再说每个缓存的特点,着重讲解redis。