简单的内存缓存模块 - Smache

雾绡析取
• 阅读 2293

介绍

[sm]art + c[ache] = smache

Smache 是一个方便的内存缓存模块,可以通过一些简单缓存策略避免无限占用更多的内存,同时确保最常用最应该被缓存的对象被缓存。

GitHub: https://github.com/Houfeng/smache

安装

npm install smache --save

用法

const Cache = require('smache');

//创建实例
var cache = new Cache({
  //最多缓存的对象数量,省略时表示不做数量限制
  //在达到最大数量时,会移除「最久没用到的」的缓存项
  max: 1000, 
  //最长缓存生命周期,单位毫秒,省略时表示永久
  //到期时自动移除
  ttl: 1000 * 60 
});

//添加
cache.set(key,value);
cache.set(key,value,ttl); //可以单设定某项的 ttl

//获取
var value = cache.get(key);

//移除
cache.remove(key);

//清空
cache.clear();
点赞
收藏
评论区
推荐文章
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
基于Spring Cache实现Caffeine、jimDB多级缓存实战
在早期参与涅槃氛围标签中台项目中,前台要求接口性能999要求50ms以下,通过设计Caffeine、ehcache堆外缓存、jimDB三级缓存,利用内存、堆外、jimDB缓存不同的特性提升接口性能,内存缓存采用Caffeine缓存,利用WTinyLFU算法获得更高的内存命中率;同时利用堆外缓存降低内存缓存大小,减少GC频率,同时也减少了网络IO带来的性能消耗;利用JimDB提升接口高可用、高并发;后期通过压测及性能调优999性能<20ms
Wesley13 Wesley13
4年前
java memcached client
Memcach什么是MemcacheMemcache集群环境下缓存解决方案Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。Memcache是d
happlyfox happlyfox
4年前
NetCore的缓存使用详例
关于我缓存基础知识缓存可以减少生成内容所需的工作,从而显著提高应用程序的性能和可伸缩性。缓存最适用于不经常更改的数据,生成成本很高。通过缓存,可以比从数据源返回的数据的副本速度快得多。应该对应用进行编写和测试,使其永不依赖于缓存的数据。ASP.NETCore支持多个不同的缓存。最简单的缓存基于IMemoryCac
Wesley13 Wesley13
4年前
J2Cache 没有 Redis 也可以实现多节点的缓存同步
J2Cache是一个两级的缓存框架,第一级是基于内存的数据缓存,支持caffeine、ehcache2和ehcache3,二级缓存只支持redis。在某些生产环境中你可能没有redis,但是又希望多个应用节点间的缓存数据是同步的。配置的方法很简单:1\.首先关闭二级缓存(使用none替代redis)j2cache
Stella981 Stella981
4年前
Redis都有哪些数据类型
string这是最基本的类型了,就是普通的set和get,做简单的kv缓存hash这个是类似map的一种结构,这个一般就是可以将结构化的数据,比如一个对象(前提是这个对象没嵌套其他的对象)给缓存在redis里,然后每次读写缓存的时候,可以操作hash里的某个字段。key150value{“id”:
Stella981 Stella981
4年前
MemCache 入门极简教程
MemCache概述MemCache虽然被称为”分布式缓存”,但是MemCache本身完全不具备分布式的功能Memcache是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。MemCaChe是一个存储键值对的Hash
Stella981 Stella981
4年前
SDWebImage 实现原理及大致介绍
一、SDWebImage实现原理:1.首先让占位图先显示。2.SDWebImageManage交给SDImageCache先从内存中查找是否有图片,会以URL作为数据的索引在内存中查找是否有对应的缓存。3.如果有缓存,通过代理进行回调展示图片。4.如果内存缓存中没有找到,生成NSInvocati
javalover123 javalover123
2年前
多模块项目使用枚举配置spring-cache缓存
1.近期被刷接口了,考虑增加本地缓存提高性能,另配置限流;2.使用springcache注解式缓存,可以提高使用缓存的开发效率;3.不同业务,可以定制自己的缓存策略,是基本需求;4.多模块项目,最好在统一的模块(如common)加载缓存配置
使用Scrapy进行网络爬取时的缓存策略与User-Agent管理
缓存策略的重要性缓存策略在网络爬虫中扮演着至关重要的角色。合理利用缓存可以显著减少对目标网站的请求次数,降低服务器负担,同时提高数据抓取的效率。Scrapy提供了多种缓存机制,包括HTTP缓存和Scrapy内置的缓存系统。HTTP缓存HTTP缓存是基于HT