Comments (8)
Good point.. I could at least add that. Might take a few days though. Thanks!
from cacheable.
This appears to be how the underlying lru-cache
module works. This line in particular checks if a cached item is stale: https://github.com/isaacs/node-lru-cache/blob/master/lib/lru-cache.js#L422
.. it sees that the maxAge
(the ttl
) is 0
and returns false
. I'm not sure if this is intentional or not.
from cacheable.
p.s., I upgraded node-cache-manager
to use the latest lru-cache
in version 1.4.0. Older versions of lru-cache
behaved the same way.
I also updated this line in the memory store:
ec114bc#diff-774c96972f8630e6e67be1ca15041a00R10
.. it wasn't passing the 0
ttl
to lru-cache
. This wasn't affecting you since you were passing the ttl
in the wrap function, which was correctly getting passed to lru-cache
here: https://github.com/BryanDonovan/node-cache-manager/blob/master/lib/stores/memory.js#L25
from cacheable.
Just to clarify, the current behavior for 0 is now to not cache, correct? Can this be documented please?
from cacheable.
@simlu - The problem is that it's not an issue with node-cache-manager
, it's just how lru-cache
works.
from cacheable.
So passing "0" actually never expires then? I'm ok with either behaviour. Just would prefer if it was documented
from cacheable.
I'm not 100% sure actually. You'd have to test how it works with whatever cache store you're using. node-cache-manager
works with three different redis libraries, two mongo libraries, lru-cache, three file system caches, a hazelcast store, memcache store, and a memory store. I unfortunately can't document how they all work. node-cache-manager
simply passes the 0
to the underlying store (or at least that's what it's supposed to do; if not that's a bug in node-cache-manager
).
from cacheable.
Ah! That makes a lot of sense. In that case should be documented that zero behaviour depends on underlying data store and should be avoided (ie prefer using 1ms)
from cacheable.
Related Issues (20)
- Fs cache store engine HOT 1
- Value being set inside "v" field on new version v2 HOT 2
- Map object is not stored HOT 5
- `this.cacheManager.store.client` is undefined HOT 2
- Question: are expired items removed from the in-memory store?
- Bug in docs: "Create single cache store synchronously" doesn't pass options to store HOT 1
- Broken link for 'Example Express App Usage' in README.md HOT 1
- Update TypeScript compilation target years HOT 2
- Receiving error `SyntaxError: Unexpected token 'export'` with v5.6.0 HOT 8
- Malformed cache data HOT 12
- Del with using keyPrefix doesn't work as expected HOT 1
- Version 5.7.2 requires node >= 20 HOT 4
- Question: how to have memory cache with dynamic TTL?
- Question: how to have memory cache with dynamic TTL? HOT 1
- Broken links in NPM docs HOT 2
- There is an issue with the `cache-manager` option is expected to be an object, but the type hint in the library indicates it should be a number. HOT 1
- cache.wrap is shared between cache instances HOT 1
- NestJS microservice gives unclear error when trying to start without Redis running HOT 3
- [Question] Git history in monorepo HOT 1
- cacheable-request: Possibly incorrect typing HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cacheable.