python使用redispy和redis来序列化任何数据类型

direct-redis的Python项目详细描述


直接Redis

  • 序列化任何python数据类型并使用redispy执行redis命令
  • 加载时,它自动将序列化数据转换为原始数据类型

入门

通过pypi安装

pip install direct-redis

实例化

from direct_redis import DirectRedis
r = DirectRedis(host='localhost', port=6379)

支持数据类型

  • 内置
    • 字符串
    • 数字(整数,浮点)
    • 字典
    • 列表
    • 元组
    • etc(所有其他python内置类型)
  • 模块类
    • 熊猫
    • numpy公司

支持Redis命令

直接Redis支持

  • 基本功能
    • 钥匙
    • 随机键
    • 类型
    • 设置
    • 得到
  • 散列函数
    • 香港交易所
    • HSET公司
    • HMSET公司
    • HGET
    • HGETALL公司
    • HVALS公司
  • 集合函数
    • 萨德
    • SREM公司
    • 抹布
    • 斯波普
    • SDIFF
    • SCARD(默认)
    • 随机成员
  • 列表函数
    • LPUSH公司
    • RPUSH公司
    • LPUSHX公司
    • RPUSHX公司
    • L范围
    • LPOP公司
    • RPOP公司
    • 林德克斯

示例

字符串

  • 最初redis将字符串存储为字节。在
^{pr2}$

数字

>>> mapping = {
...     'a': 29,
...     'b': 0.5335113,
...     'c': np.float64(0.243623466363223),
... }   

>>> r.hmset('nums', mapping)   

>>> r.hmget('nums', *mapping.keys())   
[29, 0.5335113, 0.243623466363223]    

>>> list(mapping.values()) == r.hmget('nums', *mapping.keys())
True

嵌套词典和列表

>>> l = [1,2,3]
>>> d = {'a': 1, 'b': 2, 'c': 3}   

>>> r.hmset('list and dictionary', {'list': l, 'dict': d})   

>>> r.hgetall("list and dictionary")
{'list': [1, 2, 3], 'dict': {'a': 1, 'b': 2, 'c': 3}}

>>> type(r.hgetall("list and dictionary")['list'])
<class 'list'>   

>>> type(r.hgetall("list and dictionary")['dict'])
<class 'dict'>

熊猫数据帧
>>> df =  pd.DataFrame([[1,2,3,'235', '@$$#@'], 
                       ['a', 'b', 'c', 'd', 'e']])
>>> print(df)
   0  1  2    3      4
0  1  2  3  235  @$$#@
1  a  b  c    d      e   

>>> r.set('df', df)   

>>> r.get('df')
   0  1  2    3      4
0  1  2  3  235  @$$#@
1  a  b  c    d      e   

>>> type(r.get('df'))
<class 'pandas.core.frame.DataFrame'>

Numpy数组

>>> arr = np.random.rand(10).reshape(5, 2)
>>> print(arr)
[[0.25873887 0.00937433]
 [0.0472811  0.94004351]
 [0.92743943 0.93898677]
 [0.87706341 0.85135288]
 [0.06390652 0.86362001]]   

>>> r.set('a', arr)   

>>> r.get('a')   
array([[0.25873887, 0.00937433],
       [0.0472811 , 0.94004351],
       [0.92743943, 0.93898677],
       [0.87706341, 0.85135288],
       [0.06390652, 0.86362001]])   

>>> type(r.get('a'))
<class 'numpy.ndarray'>

作者

direct-redis由Yonghee Cheon(yonghee.cheon@gmail.com)开发和维护。
可以在这里找到:https://github.com/yonghee12/direct-redis

特别感谢:

  • 安迪·麦克库迪,redis py的作者。在

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

推荐PyPI第三方库


热门话题
java如何将HashMap<String,Object>从一个活动传递到另一个活动   java如何手动加密socket连接的流量?   java正则表达式生成一个不正确的结果   Java方法引用具有泛型参数的方法   java app setBackground()错误:不兼容的类型:int无法转换为Drawable   java是启动Spring引导而不是SpringApplication的其他方法。跑   无法打开java类路径资源[org/quartz/impl/jdbcjobstore/tables_h2.sql],因为它不存在   spring使用Java,如何确定来自tomcat Web服务器的出站服务调用?   java获取多个同名的XML元素JAXB   java使用Ant从同一代码库构建Swing和Android应用程序   JComponent的java重绘方法不起作用   java目标不可访问,标识符“beanName”解析为null   smtp是否有支持esmtp管道的java api?   java如何在Spring中自动连接业务对象   java在Hibernate中没有其他保存实体的方法吗?   针对两个客户机的SpringJavaWeb应用程序项目开发   使用split的java标记化输入