Tag: caching控制

节点caching与Redis进行简单caching

我打算在Node.js应用程序中使用caching,以避免数据库读取操作。 只有less量的数据(而不是每次从数据库读取相同的数据)。 我打算在每台服务器上都有一个本地caching。 我应该去Node Cache( https://www.npmjs.com/package/node-cache )还是Redis? 哪个会更快更高效?

如何让npm使用caching

好的,我应该添加一个警告,我在一个Docker容器中,但实际上应该不会有太大的关系,我不停止容器,并且为npmcaching文件夹以及/ home文件夹用户运行npm命令。 Docker容器的目的是安装npm,它是一个构build从站,由Jenkins构build起来构build一个AngularJs应用程序。 问题是,它非常慢,每次都下载所有需要的npm包。 jenkins是用户,build立服务器上的jenkins帐户是“谁”运行npm install 对于运行npm install cmd: /home/jenkins/.npm的用户,以及命令npm config get cache所说的文件夹,我的卷都是我的caching目录: /root/.npm 。 不是容器卷应该甚至重要,因为在运行npm install之后我还没有停止容器。 确定我开始debugging的步骤,开始,我用这个命令“打开容器”: docker exec -it <container_id> bash 我从这个点运行的所有命令我连接到正在运行的容器与npm安装。 echo "$HOME"结果在/root npm config get cache以root/.npm npm config get cache结果 任何时候jenkins运行npm install在这个容器中,在那个命令成功完成之后,我运行npm cache ls ,总是产生空的,没有任何caching: ~/.npm 许多软件包被下载,但我们可以用ls -a /home/jenkins/.npm/看到: 所以我试着把cache-min设置为很长的到期时间: npm config set cache-min 9999999没有帮助。 我不知道还有什么可以做,看来我的npm软件包没有被caching,如何获得npm来caching软件包? 这里是一个截断的npm安装输出: Downloading binary from https://github.com/sass/node-sass/releases/download/v4.5.3/linux-x64-48_binding.node […]

在Node js命令行应用程序中caching

我正在尝试使用Node.js构build命令行应用程序 我使用节点caching来caching来自API调用的一些数据。 但是,当我尝试检索数据myCache.get( "key" )以前使用myCache.set( "key", data, 10000 ); 它总是返回undefined 。 我想这个问题是当我从命令行运行应用程序我每次创buildcaching对象const myCache = new NodeCache(); 。 但是,如果不创build对象,caching将无法工作。 有没有解决这个问题?

Node.js需要caching

我真的被nodejscaching系统卡住了。 我的项目有这样的结构: Project/ apps/ jobs_processor/ app.js processors.js processors/ libs/ queue_manager.js queue_manager.js需要processors.js var processors = require("../apps/jobs_processor/processors.js"); app.js也需要processor.js var processors = require("./processors.js"); 如果我考虑到文档,我必须有相同的path可能会获得相同的对象,是吗? 如果是这样,我怎么能做到这一点(有相同的path)? 谢谢。 编辑: 如果find解决我的问题。 这是queue_manager.js文件的第一个版本 var _ = require("lodash"); var Utils = require("./utilities"); var Processors = require("../apps/jobs_processor/processors"); var Logger = require("./logger"); var QUEUES_CACHE = {}; exports.createJob = createJob; exports.getCacheObject = getCacheObject; function createJob(name, data) […]

使用数据库查找在节点中导出大文件 – 避免多个数据库调用?

我是相当新的节点,虽然我认为这是伟大的服务types的应用程序,我使用它的应用程序时,只需像数据导出应用程序运行时,需要callback是访问数据库或其他这样的事情。 这是我目前的设置。 我有一个脚本,可以将数据从MongoDB导出到XML文件中,以便在单独的进程中使用。 导出脚本非常简单: db.getData(function(err, data) { data.forEach(function(entry) { // write the data to the file writeData(entry); }); }); 问题是当我需要在导出期间进行非同步调用时,例如: db.getData(function(err, data) { data.forEach(function(entry) { var cacheValue = cache.get(entry.someOtherId); if (cacheValue) { // write the value from the cache writeData(entry, cacheValue); } else { // THIS IS CALLED 1000's OF TIMES EVEN THOUGH THE FIRST […]

npm cache clean中的-f(force?)参数的行为是什么?

我search了网页,但我无法得到我的问题的答案。 怎么: npm cache clean -f 不同于: npm cache clean 我怀疑-f是-force的简写,但即使在官方文档中,我也无法find为什么会使用-f ,它有什么好处,什么是缺点。 我确定在使用-f时有一个警告,但我不知道为什么。

在nodejs服务器上的内存存储中

似乎有相当多的有前途的软件包,没有明确的build议,哪个是最快的,可扩展的,哪些是更高的内存效率。 npm安装memoizee npm安装memcached LRUcaching npm安装内存caching npm安装节点caching 任何可靠的信息来源/个人经验与这些将有所帮助。 所以基本的用法是简单的键:值存储。 只需要知道这些不同的商店的底层架构是相似/不同的,如果不同,那么这将是可扩展的。 [其中哪些被快速会话用来实现MemoryStore 。]

Tile38靠近查询节点callback函数不起作用

我正在构build一个小型的GEO应用程序,它使用http://tile38.com/和https://www.npmjs.com/package/tile38节点模块。 一切工作正常,但我无法从节点模块的NEARBY查询结果。 它看起来像callback函数不工作,我花了很多时间,但找不到出路。 我想要的是从附近的查询得到的结果,并分配给一个variables。 这里是代码: var Tile38 = require('tile38'); var client = new Tile38({host: 'localhost', port: 9851, debug: true }); // set a simple lat/lng coordinate client.set('fleet', 'truck1', [33.5123, -112.2693]) // set with additional fields client.nearbyQuery('fleet').distance().point(33.5123, -112.2693, 6000).execute((err, results) => { console.log("########"); // this callback will be called multiple times if (err) { console.error("something went […]

Redis中的多租户为node.js

我们有一个多租户NodeJS应用程序,现在我们正在为我们的一些数据添加一个caching层。 我们的目标是使用Redis 包中的 Rediscaching,我们正在努力检查我们支持多租户的选项,主要考虑两点: 保护数据。 清除租户级别的旧数据。 我们目前的调查结果是,我们可以为每个租户使用单独的Redis实例 – 这对我们来说不是一个好的解决scheme。 我们发现的另一个select是使用“tenant_id:”前缀命名空间。 这个选项解决了第一点 – 数据现在是安全的,但我们仍然有第二点要解决。 我们的使用案例是,一个租户可以投入大量的数据来填充caching并推出其他租户的数据。 我们希望在租户级别定义我们的LRU,也就是说,当新数据添加到caching时,它只会驱逐同一租户最近使用的最后一个数据。 有什么build议么?

使用ExpressJS为每个文件设置caching控制

有没有一种方法来设置ExpressJS应用程序中每个文件的caching控制属性? 我想要在我的应用程序caching文件的粒度控制…我怎么能实现这一目标? 什么是关于caching控制的最佳实践?