4 ms·
Hey, I'm the author of this blog post. Ask me anything!
by andydunstall 5y ago
Hey, I'm the author of this blog post. Ask me anything!
- ElectronShak 5y agoWould Redis Keyspace Notifications [1] help in this case? Like a script that runs when a specific key expires, such that all other related keys can be deleted too. [1] https://redis.io/topics/notifications https://redis.io/topics/notifications
- andydunstall 5y agothanks for pointing that out - will take a look :)
- avinassh 5y agothese notifications aren't guaranteed to fire at the expire time, wouldn't that be same as current problem?
- c0l0 5y agoI don't want to sound snarky, but since you mentioned that Redis does not document if/that "multiple key expiry is guaranteed to occur at the same time if keys have the same EXPIREAT setting", I am tempted to ask - why did you not check the implementation you're using? That's the unique selling point of using FOSS - you don't have rely on documentation or observational guesswork - you can wade in and really see for yourself! Redis' source code is especially readable in my opinion (thanks again, antirez, for creating this little load-bearing gem of a data structure server), so I would very much encourage you to try, even if C is not your particular forte :)
- staticassertion 5y agoNot who you're asking but... why have documentation at all? So that we don't have to read source code.
- edf13 5y agoYou can’t cover every usage possibility in docs… having the code available allows you to check expected behaviour
- rileymat2 5y agoYou also can’t tell what is supported behavior and what is implementation coincidence from the code…
- c0l0 5y agoBecause documentation is what is needs to be: A simplified and necessarily incomplete description of program behavior. It's a trade-off, since a complete and exhaustive description of all intricacies of potential program behavior would be at least as complex as the definition (= its source code) of said program. If you happen to have a question that ends up on the wrong side of that trade-off between documentation's completeness and accessibility, you will have to descend into the depths that lie beneath. I believe the redis documentation actually strikes a rather OK balance in that regard.
- staticassertion 5y agoGood docs generally make guarantees and pitfalls clear.
- scraptor 5y agoOf course having documentation is better but that's not a reason not to read the source code if the documentation isn't enough.
- voidfunc 5y agoBecause good docs are like a good search engine: high hit rate for what you want most of the time. The edge cases and quirky impl detail questions are what src is for.
- megapolitics 5y ago
- andydunstall 5y agoyep good point :) - in the end it didnt matter much as we could maintain our invariants if we just reordered the expires
- macspoofing 5y agoThat's a great suggestion, and OP should do this, but even if OP verifies behaviour today through code inspection, it's possible a future release could change it. The problem is that Redis doesn't want to make that guarantee so you can't rely on it.
- deleted 5y ago[deleted]