如何在Redis实例中有效地保存项目价格地图数据

问题描述:

我有包含项目ID及其价格的数据。我想把item id作为关键和价格作为价值。 我能想到的最好的办法是如何在Redis实例中有效地保存项目价格地图数据

> set item:1 2300 
> set item:2 4300 

等。

但是,这个问题是我必须运行一个循环来设置我的节点中的所有数据。如何在redis中使用数据结构,它将所有键 - 值对一起设置并向上插入(替换或插入)所需的键。

您可以使用MSET命令一次设置多个键值对。

此外,SETMSET命令都是upserts操作。如果键不存在,则这些命令插入键值对,否则更新该值。

您可以为此使用单个HSET。

HMSET HSET:ITEM:PRICES item:1 2300 item:2 4300 item:3 5800 item:<ID> <PRICE> ... 

更多存储器效率可以删除“项目:”从字段名(redis的将仅使用4 + 4个字节用于在存储器中的每个这样的条目)。

HMSET HSET:ITEM:PRICES 1 2300 2 4300 3 5800 <ID> <PRICE> ... 

然后,如果你想检索项目1的价格和2

HMGET HSET:ITEM:PRICES item:1 item:2 

,或者如果你只是使用更有效的方式:

HMGET HSET:ITEM:PRICES 1 2