redis - Redis 中的购物车

标签 redis key-value-store

我想在 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/

相关文章:

caching - 类似于标签缓存并查询它以建议他们使用 Redis

php - Redis SCARD 返回错误结果?

key-value-store - 如何在单个 levelDB 实例中创建多个逻辑表?

algorithm - 关于领导人选举的一些想法

python - 从 Python 设置的 Redis 值未反射(reflect)在 redis 客户端中

node.js - 在 php 和 Node 之间共享 session

支持 redis 的 Scalacache

android - android 上持久键值存储的最佳机制是什么(具有大值)

database - 专业的数据库,如 BigTable、SimpleDB

node.js - 如何在node.js中为相同的两个应用程序分离redis数据库