java技术--缓存技术选型

1.Java开源缓存框架
(1)比较有名的本地缓存开源框架有:

     <1>OSCache:缓存任何对象,可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存
     <2>JCache:Java缓存新标准(javax.cache)
     <3>cache4j:有简单API与实现快速的Java对象缓存,它的特性包括:
            1.在内存中进行缓存,设计用于多线程环境,
            2.两种实现:同步与阻塞
            3.多种缓存清除策略:LFU, LRU, FIFO,可使用强引用
     <4>ShiftOne:一个执行一系列严格的对象缓存策略的Java lib,就像一个轻量级的配置缓存工作状态的框架
     <5>Guava Cache:一个全内存的本地缓存实现,它提供了线程安全的实现机制
     <6>WhirlyCache:一个快速的、可配置的、存在于内存中的对象的缓存
     <7>EhCache:一个支持分布式的本地缓存框架(这是该缓存的最大优点)
         1.官方网站:http://ehcache.org/
         2.默认提供Hibernate的缓存实现
         3.同类的Java缓存框架中,Ehcache配置相对简单,也比较容易上手,最大的优势是它支持分布式缓存
         4.属于本地开源分布式缓存框架
    实践中,常使用Guava Cache,以及与Spring结合良好的EhCache!  

(2)比较有名的分布式缓存框架:

 <1>Ehcache:一个Java实现的开源分布式缓存框架
        1.EhCache 可以有效地减轻数据库的负载
        2.可以让数据保存在不同服务器的内存中,在需要数据的时候可以快速存取
        3.EhCache 扩展非常简单,官方提供的Cache配置方式有好几种
<2>Cacheonix: 高性能Java分布式缓存系统     
        1.也是一个基于Java的分布式集群缓存系统,它同样可以帮助你实现分布式缓存的部署
<3>JBoss Cache:基于事物的Java缓存框架   
        1.一款基于Java的事务处理缓存系统
        2.目标是构建一个以Java框架为基础的集群解决方案,可以是服务器应用,也可以是Java SE应用
<4>Voldemort: 基于键-值(key-value)的缓存框架       
        1.一款基于Java开发的分布式键-值缓存系统
        2.支持多台服务器之间的缓存同步,以增强系统的可靠性和读取性能 
<5>Redis:基于内存、可持久化的日志型、Key-Value数据库高性能存储系统,并提供多种语言的API
       1.可用作数据库、缓存或消息代理
       2.由于是从内存而非磁盘加载数据,Redis 比许多传统的数据库解决方案更快
       3.支持集群、分布式、主从同步等配置
       4.支持六种数据类型(string/hash/list/set/zset/hyperloglog)的操作
<6>memcached:本身不提供分布式的解决方案
       1.主要在于客户端,通过客户端的路由处理来搭建memcached集群环境 
       2.服务端,memcached集群环境实际上就是一个个memcached服务器的堆积品,环境的搭建比较简单
    实践中,常使用Redis作为分布式缓存框架!        

2.扩展:

(1)Redis的三个分支框架:Jedis,Redisson,lettuce
      <1>要在项目中使用Redis,需要引入对应的jar包支持
      <2>Redis为开发者提供了三种框架的jar包
      <3> Jedis客户端实例不是线程安全的,所以需要通过连接池来使用Jedis
      <4>Redisson,lettuce基于Netty框架的事件驱动的通信层,其方法调用是异步的
      <5>Redisson,lettuce的API是线程安全的,所以可以操作单个Redisson,lettuce连接来完成各种操作 
      <6>结论:建议使用:Jedis + Redisson 
(2)Redis:Jedis,Redisson选型对比
      <1>与第三方框架整合:Redisson优秀
      <2>数据结构:Redisson优秀
         1.在分布式开发中,Redisson可提供更便捷的方法
         2.Jedis仅支持基本的数据类型如:String、Hash、List、Set、Sorted Set
      <3>可伸缩性:Redisson优秀
      <4>编程模型
         1.Jedis中的方法调用是比较底层的暴露的Redis的API
         2.Jedis中的Java方法基本和Redis的API保持着一致
         3.Redisson中的方法则是进行比较高的抽象,每个方法调用可能进行了一个或多个Redis方法调用 
 (3)Redis与Memcached对比
      <1>Memcached性能高效,使用方便,但功能相对单一,只支持字符串类型的数据
      <2>Memcached需要结合序列化协议,只能用作缓存
      <3>Redis是目前最流行的缓存服务器,具有高效的存取速度,高并发的吞吐量
      <4>Redis有丰富的数据类型,支持持久化
      <5>Redis兼具了缓存系统和数据库的一些特性
      <6>Redis应用场景非常多,包括数据缓存、分布式队列、分布式锁、消息中间件等
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值