Redis的Pythonic包装器,带序列化

2024-05-18 11:40:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我试过redish。 它看起来很不错,但似乎已经死了,而且没有auth选项(在某些fork中得到了改进)。我查看了redis-natives和{a3},但似乎没有序列化。在

我不为我过去的“非此即彼”综合症感到骄傲,所以我正在寻找一些好的包装,如果它存在的话。:)

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))

用法:

^{pr2}$

不是最好的,但很管用。在


Tags: todjangokeynameimportselfredismodel