So you are storing some key-values in a dict
but your data became huge than
your memory or you want to persist it on the disk? Then mongodict is for
you!
As it uses MongoDB to store the data, you get all cool MongoDB things, like shardings and replicas.
As simple as:
pip install mongodict
or:
easy_install mongodict
As it uses
collections.MutableMapping
as its base, you just need to change the line which creates your dict
.
For instace, just replace:
>>> my_dict = {}
with:
>>> from mongodict import MongoDict >>> my_dict = MongoDict(host='localhost', port=27017, database='my_dict', collection='store')
and then use it like a normal dict
:
>>> my_dict['python'] = 'rules' >>> print my_dict['python'] 'rules' >>> del my_dict['python'] >>> print my_dict['python'] Traceback (most recent call last): File "<stdin>", line 1, in <module> File "mongodict.py", line 23, in __getitem__ raise KeyError KeyError
Enjoy! :-)
Note
There is no kind of in-memory cache, so all key lookups will be translated in a MongoDB query but as MongoDB's server put everything it can in memory, probably it'll not be a problem (if your working set is always entire in memory).
Redis is "remote directory server" - it's a great piece of software and can do the job if all your data fit on memory. By other side, MongoDB already have mature sharding and replica set features. So, if you need to store lots of key-value pairs that don't fit on memory, mongodict can solve your problem.
Note
mongodict does not have the same
API other key-value software have
(like memcached). Some features are missing to
compete directly with these kind of software (by now we have only the
dict
-like behaviour), but I have plans to add it soon.
This software was written and is maintained by
Álvaro Justen (aka Turicas).
Please contact me at alvarojusten
at gmail
dot com
.
This software uses Semantic Versioning.
It's licensed under GPL version 3.