Comments (1)
Hello,
The cache support addition of multiple entires per key via prepend
or append
api. However, it does not really behave as Redis in this cases. It would apply eviction for entire group at once if application has not touched the key for awhile. Same time, the group would grow infinitely.
The duplicate bag is not supported for individual cache segments. I am afraid it would not be even possible to make it because of an overhead during cache I/O operations.
You can implement desired solution using apply
function. This function executes you own function within the cache context thus you can maintain list of items and evict old items on write. It would be interesting to play around this and measure performance (what does it cost to copy "lists" between segments). Actually apply
is generic implementation of append
/prepend
. I'd propose you to validate your use-case with apply
then we can either create a new data type to cache or extends append
/prepends
with subset eviction.
BTW, If you solution is classical time-base rolling window then you can simply use append
/prepend
out of the box together with simple logic of generating multiple key names based on the current time span.
Please let me know what do you think?
from cache.
Related Issues (19)
- Not compiling with erlang 19
- Any way to receive notifications when the key's are removed because of TTL HOT 2
- start cache on distribute nodes makes crash HOT 4
- transaction HOT 3
- can you provide api that i can get Multiple data HOT 3
- Cache Replacement Policies
- Sharding support HOT 13
- Cache distroed HOT 1
- stick to one namespace/prefix
- cache expire issue HOT 8
- cache:ttl(...) returns negative value
- entry can not stay longer than ttl to cache:start_link(...) HOT 3
- Get and put value from function if not exists. HOT 9
- Set a limit on the use memory HOT 1
- Is there any limitation on size of segmentation for optimal performance? HOT 12
- Q: Информация о кэше, cache:i() HOT 1
- Use CT for Testing HOT 1
- support pid() as cache stats recipient. 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 cache.