如何更新redis哈希中的单个值

How to update a single value in redis hash

我正在使用 Python FastAPI 和 Redis。我写了一个函数来更新redis散列中的值,但我无法单独更新单个值,我只能重写整个散列。

我的模型:

class Item4(BaseModel):
    balance: Optional[float] = None
    currencyCode: Optional[str] = None
    customerId: Optional[int] =None

我的函数:

@app.put("/updateBalance/{balanceId}")
async def update_item(item: Item4, balanceId):
    msg = r.hmset(balanceId, dict(item))
    return msg

hmset is deprecated for hset - 但如果您只想更新单个密钥,请不要发送包含所有密钥的散列。

您可以 use the exclude_unset parameter to Pydantic's dict() 方法不包含任何未明确提供的值:

r.hmset(balanceId, item.dict(exclude_unset=True))