redis python接口,使用json、pickle、msgpack或自定义序列化程序序列化所有值。

serialized-redis-interface的Python项目详细描述


redis python接口,使用json、pickle、msgpack或自定义序列化程序序列化所有值。

https://secure.travis-ci.org/michael-mri/serialized-redis.svg?branch=masterhttps://codecov.io/gh/michael-mri/serialized-redis/branch/master/graph/badge.svg

开始

安装

pip install serialized-redis-interface

使用量

>>> importserialized_redis>>> r=serialized_redis.JSONSerializedRedis(host='localhost',port=6379,db=0)>>> r.set('foo',{'test':'dict'})True
>>> r.get('foo'){'test': 'dict'}

>>> r=serialized_redis.PickleSerializedRedis(host='localhost',port=6379,db=0)>>> r.set('foo',{'test':'dict'})True
>>> r.get('foo'){'test': 'dict'}

>>> r=serialized_redis.MsgpackSerializedRedis(host='localhost',port=6379,db=0)>>> r.set('foo',{'test':'dict'})True
>>> r.get('foo'){'test': 'dict'}

serialized-redis扩展redis-py并使用相同的接口。

大多数命令、piplines和pubsub都受支持,并负责序列化和反序列化值。

^必须安装{tt2}$才能使用MsgpackSerializedRedis

所有字符串都是python str.

限制

当值被序列化时,不支持操作或从值中提取数据的redis操作。

  • 排序命令可能无法返回正确的顺序,具体取决于使用的序列化程序。
  • zscan和sscan匹配选项仅适用于完全匹配。
  • strlength和hstrlength将返回序列化值的长度。
  • 所有词典编纂命令,如ZLyCube、ZrReMrimeBeLeX和ZrReRangeBeLeX都不支持
  • incr仅支持json序列化程序
  • redis散列的字段未序列化

额外方法

  • smembers_as_listsdiff_as_listsinter_as_listsunion_as_list可以在redis的成员 一旦反序列化,set就不能散列。

    >>> r=serialized_redis.JSONSerializedRedis()>>> r.sadd('myset',{'dict':1})1
    >>> r.smembers('myset')Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/home/michael/workspace/Origin_Nexus/serialized_redis/serialized_redis/__init__.py", line 176, in smembersreturnset(super().smembers(*args,**kwargs))TypeError: unhashable type: 'dict'>>> r.smembers_as_list('myset')[{'dict': 1}]
  • smart_getsmart_set可用于检索和存储python结构及其redis对应项:

    • pythonlist作为redis列表
    • pythonset作为redis集
    • pythondict作为redis散列,字段不会(反)序列化。

自定义序列化程序

您可以使用自己的序列化和反序列化功能:

>>> r=serialized_redis.SerializedRedis(serialization_fn=my_serializer,deserialization_fn=my_deserializer)

如果反序列化程序函数需要python 3字符串而不是字节,则可以添加decode_responses=True参数。

需要时将字节解码到str是反序列化函数的责任。

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

推荐PyPI第三方库


热门话题
google chrome我在哪里可以下载Mac OSX Lion的Java 6?   java管道化hadoop映射减少作业   java避免在使用jsoup解析html时删除空格和换行符   java将arrayList中的元素相互比较   如何创建一个计算一组数字之和的程序(Java)?   java JavaFX 8 JVM在退出后保留   升华文本3升华文本3 Java交互控制台?   JAVAutil。扫描仪和维基百科   java Android在RecyclerView中更新TextClock的时间格式(12/24小时格式)   java集合,如果达到限制,则可以在添加新项之前删除旧项   hex Java将十六进制转换为带符号的8位代码   java如何使用SQL中其他列的数据?   java如何确保返回指定类型的列表?   列出如何在java中声明匿名arraylist?   在JavaSpringBoot中使用RESTXML文件   使用Java在ColdFusion中计算HMACSHA256摘要的加密