node-cache
From: https://www.npmjs.com/package/node-cache
Simple and fast NodeJS internal caching.
A simple caching module that has set, get and delete methods and works a little bit like memcached. Keys can have a timeout (ttl) after which they expire and are deleted from the cache. All keys are stored in a single object so the practical limit is at around 1m keys.
Since 4.1.0: Key-validation: The keys can be given as either string or number, but are casted to a string internally anyway. All other types will either throw an error or call the callback with an error.
Install
Or just require the node_cache.js file to get the superclass
Examples:
Initialize (INIT):
Options
stdTTL: (default:0) the standard ttl as number in seconds for every generated cache element.0= unlimitedcheckperiod: (default:600) The period in seconds, as a number, used for the automatic delete check interval.0= no periodic check.errorOnMissing: (default:false) en/disable throwing or passing an error to the callback if attempting to.geta missing or expired value.useClones: (default:true) en/disable cloning of variables. Iftrueyou'll get a copy of the cached variable. Iffalseyou'll save and get just the reference. Note:trueis recommended, because it'll behave like a server-based caching. You should setfalseif you want to save mutable objects or other complex types with mutability involved and wanted. Here's a simple code exmaple showing the different behaviordeleteOnExpire: (default:true) whether variables will be deleted automatically when they expire. Iftruethe variable will be deleted. Iffalsethe variable will remain. You are encouraged to handle the variable upon the eventexpiredby yourself.
Store a key (SET):
myCache.set( key, val, [ ttl ], [callback] )
Sets a key value pair. It is possible to define a ttl (in seconds). Returns true on success.
Note: If the key expires based on it's
ttlit will be deleted entirely from the internal data object.
Since 1.0.0: Callback is now optional. You can also use synchronous syntax.
Retrieve a key (GET):
myCache.get( key, [callback] )
Gets a saved value from the cache. Returns a undefined if not found or expired. If the value was found it returns an object with the key value pair.
Since 1.0.0: Callback is now optional. You can also use synchronous syntax.
Since 2.0.0:
The return format changed to a simple value and a ENOTFOUND error if not found ( as callback( err ) or on sync call as result instance of Error ).
Since 2.1.0:
The return format changed to a simple value, but a due to discussion in #11 a miss shouldn't return an error. So after 2.1.0 a miss returns undefined.
Since 3.1.0 errorOnMissing option added
Get multiple keys (MGET):
myCache.mget( [ key1, key2, ... ,keyn ], [callback] )
Gets multiple saved values from the cache. Returns an empty object {} if not found or expired. If the value was found it returns an object with the key value pair.
Since 1.0.0: Callback is now optional. You can also use synchronous syntax.
Since 2.0.0:
The method for mget changed from .get( [ "a", "b" ] ) to .mget( [ "a", "b" ] )
Delete a key (DEL):
myCache.del( key, [callback] )
Delete a key. Returns the number of deleted entries. A delete will never fail.
Since 1.0.0: Callback is now optional. You can also use synchronous syntax.
Delete multiple keys (MDEL):
myCache.del( [ key1, key2, ... ,keyn ], [callback] )
Delete multiple keys. Returns the number of deleted entries. A delete will never fail.
Since 1.0.0: Callback is now optional. You can also use synchronous syntax.
Change TTL (TTL):
myCache.ttl( key, ttl, [callback] )
Redefine the ttl of a key. Returns true if the key has been found and changed. Otherwise returns false. If the ttl-argument isn't passed the default-TTL will be used.
The key will be deleted when passing in a ttl < 0.
Get TTL (getTTL):
myCache.getTtl( key, [callback] )
Receive the ttl of a key. You will get:
undefinedif the key does not exist0if this key has no ttl- a timestamp in ms until the key expires
List keys (KEYS)
myCache.keys( [callback] )
Returns an array of all existing keys.
Statistics (STATS):
myCache.getStats()
Returns the statistics.
Flush all data (FLUSH):
myCache.flushAll()
Flush all data.
Close the cache:
myCache.close()
This will clear the interval timeout which is set on check period option.
Events
set
Fired when a key has been added or changed. You will get the key and the value as callback argument.
del
Fired when a key has been removed manually or due to expiry. You will get the key and the deleted value as callback arguments.
expired
Fired when a key expires. You will get the key and value as callback argument.
flush
Fired when the cache has been flushed.
node-cache的更多相关文章
- LeetCode: LRU Cache [146]
[题目] Design and implement a data structure for Least Recently Used (LRU) cache. It should support th ...
- Curator Recipes(Cache&Counter)
Cache 路径缓存(Path Cache) 监视一个ZNode,当子节点增加.更新.删除改变状态时,路径缓存会在本地保存当前子节点及其数据和状态. public PathChildrenCache( ...
- [Swift]LeetCode146. LRU缓存机制 | LRU Cache
Design and implement a data structure for Least Recently Used (LRU) cache. It should support the fol ...
- 深入浅出Cache
章节 ① 什么是Cache? Cache的目标? ② Caching住哪些内容? ③ 我们想要的Cache产品 ④ Cache使用方式 ⑤ 对于总体系统的提高 ⑥ 关于Sharding ⑦ Cache ...
- LeetCode题解: LRU Cache 缓存设计
LeetCode题解: LRU Cache 缓存设计 2014年12月10日 08:54:16 邴越 阅读数 1101更多 分类专栏: LeetCode 版权声明:本文为博主原创文章,遵循CC 4 ...
- nodejs安装和环境部署
windows 下: 1. 下载windows平台nodejs环境安装包,百度一下nodejs官网,找到DOWNLOADS点击,找到Windows Installer 如果为64位电脑可以选择64位版 ...
- Apache Curator: Zookeeper客户端
Apache Curator Framework url: http://curator.apache.org/curator-framework/ The Curator Framework is ...
- 【ToolKit】轻量级JS库
优点: 丢弃了一些不常用的方法(jQuery.fn):slideUp.fadeIn.animate等: 新增获取子节点的方法(ToolKit.fn):firstChild,lastChild等: 新增 ...
- vue-cli安装失败问题
1.尝试 管理员权限 安装,看是否能解决问题 2.仍未解决问题, 系统变量增加: C:\Program Files\nodejs\node cache\node_modules\vue-cli\bi ...
- peersim中BT网络核心代码解析
首先大概介绍BT网络运行的整体流程: 开始阶段,一个节点加入到网络中,并向tracker节点发送信息,tracker返回若干个邻居的列表 得到列表后,向每个邻居发送bitfiled信息,来获取他们的文 ...
随机推荐
- PHP使用Apache中的ab测试网站的压力性能及mpm介绍
打开Apache安装的bin目录 shift+鼠标右键 复制粘贴以下代码->回车 ab -n 1000 -c 100 http://localhost/test.php 上例表示总共访问http ...
- orleans exception序列化
options.FallbackSerializationProvider = typeof(ILBasedSerializer).GetTypeInfo();
- 使用 Django-debug-toolbar 优化Query 提高代码效率
一段程序执行效率慢,除了cpu计算耗时外,还有一个很重要的原因是SQL的Duplicated过多,使用Django-debug-toolbar能够快速找出哪些地方的SQL可以优化,提高程序执行效率 1 ...
- 解决Ubuntu中Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another proce...
解决Ubuntu中Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another proce... ...
- Trace 2018徐州icpc网络赛 (二分)(树状数组)
Trace There's a beach in the first quadrant. And from time to time, there are sea waves. A wave ( xx ...
- UVA 796 Critical Links(模板题)(无向图求桥)
<题目链接> 题目大意: 无向连通图求桥,并将桥按顺序输出. 解题分析: 无向图求桥的模板题,下面用了kuangbin的模板. #include <cstdio> #inclu ...
- 错误代码:0x80070032 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
错误分析: vs2010默认采用的是.NET 4.0框架,4.0框架是独立的CLR,和.NET 2.0的不同,如果想运行.NET 4.0框架的网站,需要用aspnet_regiis注册.NET 4.0 ...
- 大道至简第一章Java伪代码
1.编程的精义//愚公移山public class Yugong{public static void main(String[]args){ while(山没平){ ...
- Java实现FTP与SFTP文件上传下载
添加依赖Jsch-0.1.54.jar <!-- https://mvnrepository.com/artifact/com.jcraft/jsch --> <dependency ...
- Java并发编程(七)-- ThreadLocal
提到ThreadLocal,有些Android或者Java程序员可能有所陌生,可能会提出种种问题,它是做什么的,是不是和线程有关,怎么使用呢?等等问题,本文将总结一下我对ThreadLocal的理解和 ...