具备根据entry节点上次被访问或者写入时间计算它的过期机制;

缓存的key被封装在WeakReference引用内;

缓存的Value被封装在WeakReference或SoftReference引用内;

统计缓存使用过程中命中率、异常率、未命中率等统计数据。

6.3 Memcache

memcache本身不支持分布式,是通过客户端的路由处理来达到分布式解决方案的目的。特点如下:

memcache使用预分配内存池的方式管理内存;

所有数据存储在物理内存里;

非阻塞IO复用模型,纯KV存取操作;

多线程,效率高,会遇到锁等上下文切换问题;

只支持简单KV数据类型;

数据不支持持久化。

6.4 Redis

Redis是当前主流的高性能内存数据库,多用于存储缓存数据,并能实现轻量级的MQ功能。特点如下:

临时申请空间,可能导致碎片;

有VM机制,能存储更多数据,超过内存空间后会导致swap,降低效率;

非阻塞IO复用模型,支持额外CPU计算:排序、聚合,会影响IO性能;

单线程,无锁,无上下文切换,单实例无法利用多核性能;

支持多种数据类型:string / hash / list / set / sorted set;

数据支持持久化:AOF(语句增量)/RDB(fork全量);

天然支持高可用分布式方案sentinel +;

cluster(故障自动转移+集群)。

6.5 推荐

通常情况下,单机我们会用Ehcache,甚至java自己的concurrenthashmap来实现缓存。分布式一般使用redis。

关于存储技术就介绍完了,您有什么想法可以联系小编。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查