Sandsnake is a sorted index implemented in python and uses redis as a backend.
It was originally implemented to be used as an indexing system for Sunspear.
Requirements should be handled by setuptools, but if they are not, you will need the following Python packages:
- nydus
- redis
- dateutil
- hiredis
Creates an sandsnake object that allows to to store and retrieve indexes:
>>> from sandsnake import create_sandsnake_backend
>>>
>>> sandsnake = create_sandsnake_backend({
>>> 'backend': 'sandsnake.backends.redis.Redis',
>>> 'settings': {
>>> 'defaults': {
>>> 'host': 'localhost',
>>> 'port': 6379,
>>> 'db': 0,
>>> },
>>> 'hosts': [{'db': 0}, {'db': 1}, {'host': 'redis.example.org'}]
>>> },
>>> })
Internally, the Redis sandsnake backend uses nydus to distribute your indexes data over your cluster of redis instances.
There are two required arguements:
backend: full path to the backend class, which should extend sandsnake.backends.base.BaseSandsnakeBackendsettings: settings required to initialize the backend. For theRedisbackend, this is a list of hosts in your redis cluster.
from sandsnake import create_sandsnake_backend
import datetime
sandsnake = create_sandsnake_backend({
"backend": "sandsnake.backends.redis.Redis",
"settings": {
"hosts": [{"db": 5}]
},
})
#add a value of "abc" to the ``index`` for an ``object``
sandsnake.add("user:1", "homefeed", "abc")
sandsnake.add("user:1", ["homefeed", "recogfeed"], "abc")