Python × ElastiCache for Redis:入门简易教程2-哈希类型-
首先
本文是上一篇文章的延续。
请参考先前的文章。
安装库
连接数据库
这次我们将讨论如何使用ElastiCache for Redis处理哈希类型的方法。
散列类型:向Redis写入
哈希类型可以对应一个键拥有多个字段和数值的组合。
使用hset进行基本写入的方法如下所示。
import redis
redis_host = 'エンドポイント'
redis_port = 6379
client = redis.Redis(host=redis_host, port=redis_port,decode_responses=True, ssl=True)
key = "id1"
mapping = {"a":"1"}
client.hset(key, mapping=mapping)
Redis无法直接存储int类型、float类型或None,而是需要将其保存为字符串。
def to_str(value):
"""
int型とfloat型を識別して、型情報と共に文字列型として保存し、Noneを"null"として保存する関数
"""
if isinstance(value, int):
return f"int:{field_value}"
elif isinstance(value, float):
return f"float:{field_value}"
elif value == None:
return "null"
return value
pre_mapping = {"a",1,"b":None}
mapping = {field: to_str(value) for field, value in pre_mapping.items()}
client.hset(key, mapping=mapping)
哈希类型:从Redis读取
使用hgetall函数进行散列类型的读取如下所示。
如前所述,如果要将字符串类型的int型或float型变量还原为其原始类型,则可以使用cast_value。
def cast_value(value):
"""
int型とfloat型のprefixを識別して本来の型にキャストし、"null"をNoneに戻す関数
"""
if value.startswith('int:'):
return int(value.split(':', 1)[1])
elif value.startswith('float:'):
return float(value.split(':', 1)[1])
elif value == "null":
return None
return value
key = "id1"
res = client.hgetall(key)
res = {field: cast_value(value) for field, value in res.items()}
最後
以上是有关Python×ElastiCache for Redis中哈希类型的使用说明。
一旦本次Python×AWS数据库的说明在本节的日历活动结束了,但是如果有机会的话,我想要整理一篇关于解释(1) RDS和MongoDB编程的文章,并进行(2) 速度测试。
- 前回までの類似記事はこちら