首页 > 解决方案 > 如何在 Redis 缓存中附加字典?

问题描述

我想在 Redis 缓存中附加一个字典。

我对添加没有任何问题但我无法将多个字典附加到 Redis。


这是一个例子:

import redis

cli = redis.Redis('localhost')

list_of_dict = [  # dummy
    {
        'tags': {'module': 'destructor', 'station': 'SNMP'},
        'metric_name': 'destructor',
        'value': -8555,
        'time': '2018-11-13T15:25:07'
    },
    {
        'tags': {'module': 'voltage', 'station': 'SNMP'},
        'metric_name': 'voltage',
        'value': 222,
        'time': '2018-11-13T15:25:09'
    }
]

from pprint import pprint

for ld in list_of_dict:
    cli.hmset("pythonDict", ld)
    # conn.append(key, val)  # Needs a key value.

pprint(cli.hgetall("pythonDict"))

在上面的代码片段.hmset()中只写了最后一个元素/字典list_of_dict写入 Redis(覆盖)并且.append()需要 a key,val

如何在 Redis 上编写/附加两个字典并检索它们list_of_dict

标签: pythonredis

解决方案


分别设置键和值。按以下方式编写代码:

for key,val in list_of_dict:
    cli.hset("pythonDict", key, val)

pprint(cli.hgetall("pythonDict"))

如果要按原样存储数组并检索值使用json包。下面是一个示例:

import json
cli.set("pythonDict", json.dumps(list_of_dict))
pprint(json.loads(cli.get("pythonDict")))

推荐阅读