我想在 Redis 中存储购物车数据。
我有这样的数据:
{ user_X (unique)
product_id1, product_name1, product_price1
product_id2, product_name2, product_price2
... } example of a shopping cart
{ user_Y (unique)
product_id1, product_name1, product_price1
product_id2, product_name2, product_price2
... } example of another shopping cart
我应该使用哪种数据类型?
最佳答案
您的数据似乎很适合散列数据类型。使用由用户 ID 组成的键名(Redis 约定是使用冒号“:”字符分隔键名中的元素)。每个购物车哈希中的字段名称应该是产品 ID。
由于 Redis 的哈希(以及与此相关的所有其他数据类型)不支持嵌套,因此哈希的字段值唯一可能的数据类型是字符串。将产品名称和价格存储在字符串中最简单的方法就是将两者连接起来并使用定界符进行分隔。因此,上面的示例将存储在类似于以下内容的 Redis 中:
HSET cart:X id1 "name1:price1"
HSET cart:X id2 "name2:price2"
HMSET cart:Y id1 "name1:price1" id2 "name2:price2"
要获取用户的购物车,请在键上执行 HGETALL
,或者如果您的购物车非常大,请使用 HSCAN
。
关于redis - Redis 中的购物车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30991375/