授权协议: Apache
开发语言: Java
操作系统: 跨平台
收录时间: 2016-08-17
提 交 者: strato

缓存是服务器程序中经常用到的技术,使用缓存可以大大降低服务器的压力。目前常见的缓存工具都很好地解决了生命周期、存储、命中率等关键算法,但是绝大多数的缓存框架对于数据更新都是阻塞式的,即当缓存过期时会等待应用程序重新获取值。其性能曲线类似下图(假设刷新一次需要5ms):

阻塞式的缓存处理方式,每次的重新取值都会出现一次波峰,用户在使用系统的过程中将产生顿挫感。

NCache 建立了一套抽象的非阻塞式缓存模型与 API,应用 NCache 的缓存处理时效如下图所示:

使用 NCache 仅需在首次加载数据时停顿,此后的更新都将在后台线程完成。

NCache特性一览:

  • 仅首次加载时阻塞,此后刷新都由后台完成

  • 开发者可自定义线程池,控制线程调度及溢出机制

  • 默认提供基于 FIFO 的内存存储,对象超出将被移除

  • 支持链式数据存储,开发者可附加其他存储方式,如 Redis、Memcached、Ehcache

     

快速上手:

NCache 使用非常简单,只需将 jar 包放入classpath,然后即可调用。下面是一个简单的示例:

int cacheTTL=5*1000;//缓存有效期5秒钟
        NCache<String> ncache=NCache.newInstance();//ncache可复用
        ncache.setTimeToLive(cacheTTL);
        DataLoader<String> loader=new DataLoader<String>() {//loader可复用
            @Override
            public String load() throws Exception {
                int expense=new Random().nextInt(2000);//随机模拟取数据性能消耗
                String value="VALUE_"+expense;
                System.err.println("Reloading:"+value);
                Thread.sleep(expense);
                return value;
            }
        };
        for(int i=0;i<10000;i++){
            String value=ncache.get("somekey", loader);
            System.out.println("Get:"+value);
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

点此查看快速上手指引

源码:https://svn.zim-soft.com/svn/strato/tags/ncache/strato.ncache.v2_6_5  (用户名:guest  密码:无)

展开阅读全文

Strato NCache 的相关资讯

还没有任何资讯

Strato NCache 的相关博客

web缓存系统 NCache

NCACHE 是基于 NGINX 的 WEB 服务器模型构件起来的缓存系统, 是SINA公司的开源产品. 起初的目的是为了提升缓存响应速度而开发...

NCache控件使用说明免费下载

NCache 是一个基于 .NET 应用程序关键任务的集群存储器对象缓存。 NCache 也能对运行在服务器的 .NET 应用程序提供一个可升级...

NCache包装微软Azure分布式缓存示意图

NCache包装微软Azure分布式缓存使用2中方法,一种是.Net和Java应用程序Memcached插件,另外一个是就是Memcached网关。 Memcac...

可升级的 ASP.NET Clustered Session State 解决方案NCache

NCache 是一个基于 .NET 应用程序关键任务的集群存储器对象缓存。 NCache 也能对运行在服务器的 .NET 应用程序提供一个可升级...

NCache实现Oracle数据与分布式缓存数据同步三个步骤

多层次结构的应用程序是目前发展的趋势,这种程序都需要庞大的数据库支持。而数据传输的能力直接影响程序性能,成为程序可扩展...

板载CAN的树莓派扩展板Strato Pi CAN

板载CAN的树莓派扩展板Strato Pi CAN Sfera Labs推出了最新的树莓派扩展组件“灵云派”,其中包括CAN总线,电气隔离的RS-485,...

用分布式缓存提升ASP.NET Core性能

得益于纯净、轻量化并且跨平台支持的特性,ASP.NET Core作为热门Web应用开发框架,其高性能传输和负载均衡的支持已广受青睐。...

maya aliembic 导出的一些重要参数

http://download.autodesk.com/global/docs/maya2014/zh_cn/index.html?url=files/Alembic_Export.htm,topicNumber=d30e11040...

OpenLDAP使用BDB时的一些配置和维护方法

OpenLDAP使用BDB时的一些配置和维护方法

Strato NCache 的相关问答

还没有任何问答,马上提问

评论 (0)

加载中
更多评论
0 评论
5 收藏
分享
在线直播报名
返回顶部
顶部