蟒蛇的本地类型

redistypes的Python项目详细描述


https://travis-ci.org/vladimirshkoda/redis-bindings.svg?branch=masterhttps://img.shields.io/badge/style-wemake-000000.svg

redis绑定是将redis类型作为本机类型引入python的一种尝试。它 基于redis-py并具有 到目前为止实现了以下类型:

此外,它还提供了一些redis描述符接口:

  • Iredisfield
  • iredislistfield

它完全是接口,因为它要求用户重写get_key_name 方法定义redis的密钥名。下面是一个例子 已实现(可在example.py中找到)。

fromredisimportRedisfromredistypes.descriptorsimportIRedisField,IRedisListFieldr_connection=Redis()classRedisField(IRedisField):def__init__(self,pickling=True):super(RedisField,self).__init__(redis_connection=r_connection,pickling=pickling)defget_key_name(self,instance):return':'.join([instance.__class__.__name__,str(instance.pk),self.name])classRedisListField(IRedisListField,RedisField):passclassStudent:name=RedisField()subjects=RedisListField()def__init__(self,pk):self.pk=pk

上面定义的Student类可以执行以下操作:

>>> fromexampleimportStudent>>> s=Student(pk=1)>>> s.name='John Galt'>>> s.subjects=['math','physics']>>> s.nameJohn Galt
>>> s.subjectsRedisList: ['math', 'physics']
>>> s.subjects.append('p.e.')>>> s.subjectsRedisList: ['math', 'physics', 'p.e.']
>>> # Values stored inside the Redis types are immutable!>>> s.subjects.append({'name':'art','avg_score':4.5})>>> s.subjects[3]{'avg_score': 4.5, 'name': 'art'}
>>> s.subjects[3]['avg_score']=3>>> s.subjects[3]{'avg_score': 4.5, 'name': 'art'}

警告!

存储在redis类型中的所有值都是不可变的!如上所示 显示,试图更改 重新发现什么都没有。

路线图

  • 通过管道查询
  • 重新发现

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
swing Java按钮/网格布局   java列出Google日历中的所有事件   java无效:单击API publisher test按钮后连接到后端时出错   带有内部赋值的java While循环导致checkstyle错误   java为什么trimToSize/ensureCapacity方法提供“公共”级访问?   文件输出流的java问题   ListIterator和并发修改异常的java问题   java如何使用两个URL映射   无法识别使用“./../”构造的字符串java相对路径,为什么?   首次写入remotelyclosedsocket不会触发异常,对吗?JAVA   java OneDrive REST API为文件上载提供了400个无效谓词   Java泛型、集合接口和对象类的问题   OpenSSL Java安全提供程序   jmeter java运行jmx禁用操作