redishを試してみました。かなり良さそうに見えますが、死んでいるようで、認証オプションがありません (いくつかのフォークで改善されました)。redis-nativesとredis_wrapを見てみましたが、シリアル化されていないようです。
過去の「ここで発明されていない」症候群を誇りに思っていないので、素敵なラッパーがあれば探しています。:)
UDP: django で最も単純な独自の自転車である IMHO は、次のようになります。
from django.forms.models import model_to_dict
import redis
import anyjson
r = redis.Redis(password=setting('REDIS_PASSWORD'))
class ToRedisMixIn(object):
def save(self, *args, **kwargs):
super(ToRedisMixIn, self).save(*args, **kwargs)
exclude = ['id']
redis_exclude = getattr(self, 'redis_exclude', None)
redis_key_name = getattr(self, 'redis_key_name', None) or '%ss' % self.__class__.__name__.lower()
if redis_exclude:
exclude += redis_exclude
model_dict = model_to_dict(self, exclude=exclude)
r.hset(redis_key_name, self.id, anyjson.serialize(model_dict))
使用法:
class Device(ToRedisMixIn, models.Model):
host = models.IPAddressField()
name = models.CharField(max_length=32)
description = models.CharField(max_length=200, blank=True)
redis_exclude = ['description']
redis_key_name = 'devices'
最高ではありませんが、機能します。