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将字符串存储为字节。在
数字
>>> 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'>
作者
>>> 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'>
>>> 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的作者。在
- 项目
标签: