Comments (2)
How/when would this function be called?
The capacity and TTL checks are rather efficient, i.e., they aren't performed randomly and additional internal queues are being used for that too. As I see it, the only way this dynamic function could work is if the user provided some duration after which it would be called (or DeleteExpired()
would be called by the user). But even then the cache would have to iterate over all the items as no internal queues could be used.
I don't see how this addition could benefit this library, however, I understand that sometimes items need to be dynamically deleted. I think the best way to achieve this would be by having a method that would allow the user to iterate over the items in the cache. We have an issue for that as well: #71
from ttlcache.
for some reason, the eviction was being done through a timer/scheduled function..which means my idea would have had legs. looking back, it seems to clean itself on accesses.
I think it will be best to have an external cleaning component that accepts the cache as an input and iterate on schedule to clean it.
from ttlcache.
Related Issues (20)
- Way to get expired elements. HOT 2
- v3.0.1 doesn't have cache.GetOrSet method while it's documented in README.md of master branch HOT 5
- v3.0.1 doesn't have cache.Has method while it's documented in README.md of master branch HOT 2
- Question: about memory exceeding the limit HOT 1
- Is it thread safe? HOT 1
- Optimize getOpts allocation in Get() method using sync.Pool HOT 1
- Set without expanding the Expire time HOT 3
- `Range` panics when cache is empty HOT 1
- Feature request: Dedup same-key loader HOT 8
- Protect Range from empty cache HOT 1
- Memory leak problem caused by deleting items from golang map HOT 3
- SuppressedLoader should allow setting `group` HOT 9
- OnEviction doesn't work as expected HOT 1
- Add MGet or Multiple Get to improve read performance HOT 2
- Cache Sharding support to increase performance
- Add an option for cache to not expire until background refresh completes HOT 5
- Mention DefaultTTL and NoTTL in Set() docs HOT 4
- Ensure that GetOrSet and GetAndDelete are properly locked HOT 2
- How to get cache value without "Automatic expiration time extension"? HOT 1
- Add a method to check if a key exists HOT 1
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 ttlcache.