5 ms·
Moneta - a unified interface to key/value stores
- avar 16y agoThis is similar to the CHI and Cache modules for Perl: http://search.cpan.org/perldoc?CHI http://search.cpan.org/perldoc?CHI http://search.cpan.org/perldoc?Cache http://search.cpan.org/perldoc?Cache
- uuid 16y agoInteresting, and potentially useful. However: "All stores support key expiration, but only memcache supports it natively. All other stores emulate expiration." Redis doesn't support volatile keys?? Also, does it allow access to a DB's tuning parameters? It makes a great difference whether to use Tokyo's B+ tree database or its hash database ...
- subwindow 16y agoThat was my first thought as well. The expire/expireat commands are one of the main reasons why I chose Redis. I'm honestly not sure why wycats would make that statement. It's not like the interface for expiration is particularly opaque.
- technoweenie 16y agoI don't think Moneta's Redis interface uses the ruby expiration code: http://github.com/wycats/moneta/commit/522be344cfeddb4a4dbf8fe75ecdbccb627a0bde http://github.com/wycats/moneta/commit/522be344cfeddb4a4dbf8...
- subwindow 16y agoIt turns out the code used the Redis native expiration, but it wasn't compatible with Redis 2.x. So I fixed both problems. I sent a pull request. We'll see if it makes it into main. http://github.com/subwindow/moneta http://github.com/subwindow/moneta As a side note, the library is pretty simple at this point. The way the tests are set up is pretty excellent as well.
- petercooper 16y agoBecause moneta is not new at all, look at the commit dates :-) It only seems to have made it to HN because someone resurfaced it on Reddit recently. I asked wycats about this and he said he plans to do some serious reworking on it soon.
- subwindow 16y agoAlso, re: tuning parameters. You can use them, in some circumstances. For tokyo in particular, it assumes tch. It'd be a 1-2 line fix to add in support for tcb or tcf. I don't know enough about Tokyo to test it, however. Also, you can use tcb with Tyrant, which Moneta supports.
- tptacek 16y agoUsing this with Redis (at least) misses much of the point of Redis, which has an especially rich API.
- patio11 16y agoOn the plus side, I used something similar to use my caching store back when it was MemcachedDB, and switching to Redis required a one-line change in a config file rather than refactoring. (Learn from my mistake, everyone: skip MemcachedDB, go straight to Redis, collect $200.)
- thibaut_barrere 16y agoAPI-cache is a convenient caching layer that works on top of Moneta: http://github.com/mloughran/api_cache http://github.com/mloughran/api_cache I use it on multiple sites (to cache http downloads, delicious tags api calls etc). You can start with a simple filesystem store (moneta/basic_file) and move to another store when needed.
- benatkin 16y agoInteresting looking at the network graph on this repo. Lots of forking but no merging in the months since features where added to wycats' repo. Seems the project could use a maintainer! http://github.com/wycats/moneta/network http://github.com/wycats/moneta/network
- wycats 16y agoI've been working on a rework on a branch that should be merged in this weekend. It takes a lot of the feedback I've gotten and existing forks into consideration, as well as lessons learned from Rack. It was originally an experiment, and I didn't notice the activity around it until recently. Stay tuned :-D