Redis 中的购物车

Shopping carts in Redis

我想将购物车数据存储在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

本教程将向您展示如何通过使用 Node.js 创建一个基本的电子商务购物车应用程序来利用 Redis 的强大功能。通常,购物车数据以 cookie 的形式存储在客户端。 Cookie 是存储在网络用户的浏览器目录或数据文件夹中的小文本文件。这样做的好处是您不需要在数据库中存储此类临时数据。但是,这将要求您在每次 Web 请求时都发送 cookie,如果 cookie 很大,这可能会减慢请求速度。

您可能会发现这很有趣:https://developer.redislabs.com/howtos/shoppingcart/