gpt4 book ai didi

Redis建模

转载 作者:可可西里 更新时间:2023-11-01 11:04:16 25 4
gpt4 key购买 nike

模拟以下场景的最佳方法是什么?用户有多个投资组合,每个投资组合有多只股票。

我想出了以下几点:

股票将在哈希表中显示如下

stk:1 {name:A, ticker:val, sector:val ..}
stk:2 {name:B, ticker:val, sector:val ..}

用户可以是如下哈希:(将用户的投资组合单独存储为一组更好吗?)

user:1 {k1:val1, k2:val2, 投资组合:"value|growth|short term"}
user:2 {k1:val3, k2:val4, 投资组合:"value|defensive|penny"}

投资组合中的股票可以设置
用户:1:值(1,3)
用户:2:值(2,3,4)
用户:1:短期 (1,5)
用户:2:便士 (4)

为了为用户添加/删除投资组合,需要“HGET user:n portfoliots”后接 HSET

随着用户和投资组合数量的增长,这是一种很好的建模方式吗?

最佳答案

如果用户可以拥有多种投资组合类型,那么最好将它们分成自己的集合。

sadd user:1:portfolios value growth "short term"

这使得从用户中删除投资组合就像在集合上调用 srem user:1:portfolios value 一样简单(当然还有删除“user:ID:TYPE”集合)。

当您想根据投资组合类型为用户查找股票时,您可以使用 sunionstoresort 命令(Ruby 中的示例):

keys = redis.smembers('user:1:portfolios').map do |type|
"user:1:#{type}"
end

redis.multi do |r|
r.sunionstore "user:1:stocks:_tmp", *keys
r.sort "user:1:stocks:_tmp", get: ["stk:*->name", "stk:*->ticket"]
r.del "user:1:stocks:_tmp"
end

stk:*->name 将只返回 name 的散列值。如果您想获取散列中的所有条目,请使用“KEY->HASHKEY”语法指定每个条目。

http://redis.io/commands/sort

关于Redis建模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13038842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com