Redis数据存储库
项目描述
萝卜沙拉是一个简单的库,用于以更Pythonic的方式操作Redis数据存储。
基础
它包括String、Hash、List和Set类,这些类表示Redis数据类型。您需要使用键初始化数据类型
>>> dt.List('main stream').append('Blogger Navalniy discovered new corruption scheme in Russia!') 1L >>> list(dt.List('main stream')) ['Blogger Navalniy discovered new corruption scheme in Russia!']>>> up = dt.Hash('0:user profile') >>> up['name'] = 'deepwalker' >>> dict(up) {'name': 'deepwalker'} >>> 'name' in up True>>> friends = dt.Set('friends') >>> friends.add(1929340) >>> set(friends) set(['1929340']) >>> 1929340 in friends True
模型
萝卜沙拉有一个名为models的模块,它并不定位为Django ORM的东西。它只是键名生成的辅助工具。因此,您创建一个模型
>>> from radishsalad import models as m >>> class User(m.Model): ... name = m.String() ... subscribers = m.Set() ... profile = m.Hash() ... messages = m.List() ... read = m.List() ...
并且为了使用它,您需要用键初始化它
>>> user = User(1000)
现在您有了user实例,您可以获取它的成员键
>>> user.name.get_key() 'user:1000:name'
库不会返回字符串,而是返回用于在redis.mget中使用的String对象
>>> from radishsalad.connection import get_redis >>> r = get_redis() >>> r.mset(dict((User(i).name.get_key(), i) for i in xrange(40))) >>> r.mget(User(i).name.get_key() for i in xrange(40)) ['0', '1', '2', '3', '4', '5', '6', '7', ... '38', '39']