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第三方库


热门话题
Android:如何写入特定行,Java   Java中从欧元货币字符串中删除空格的数字   Java非均匀多维数组   解密AES时出现java空指针异常   java ConcurrentModificationException尝试移除列表上的所有内容时(非迭代)   Java数学库计算日志   java ISO8601,使用Jackson以毫秒表示json   避免副作用的java最佳实践   java获取JMeterException:调用bsh方法时出错:未定义参数:saa。使用beanshell取样器时   使用javascript将会话从一个jsp页面传输到另一个jsp页面   java在列表中组合相邻元素   java多行JTextPane   java Hibernate映射文件连接两个表而不定义关系?   如何使用Ajax、Java和Spring框架将文件从网页上传到Google云存储   多线程多线程Java中producerconsumer代码的多线程没有提供正确的输出?