gpt4 book ai didi

redis - 在 Redis 中正确建模以编写单个实体但查询多个实体

转载 作者:IT王子 更新时间:2023-10-29 06:01:33 27 4
gpt4 key购买 nike

我正在尝试将 Sql DB 上的数据转换为 Redis。为了获得更高的吞吐量,因为它是一个非常高的吞吐量。我知道持久性、存储成本等的缺点......

所以,我有一个名为“用户”的表,其中只有几列。假设:ID、姓名、电话、性别

大约 90% 的请求是写入。更新单行。大约 10% 的请求是读取。在每个请求中获得 20 行。

我正在努力思考正确的建模方式,以便最大限度地利用它。

如果只有更新 - 我会使用哈希。但是因为 10% 的 Reads 恐怕效率不高。

有什么建议吗?

最佳答案

实际上,真正的问题是您是否需要支持部分更新。

假设不需要部分更新,您可以将记录存储在与键关联的 blob 中(即字符串数据类型)。所有写操作都可以在一次往返中完成,因为记录总是一次写入。使用 MGET 命令也可以在一次往返中完成多个读取操作。

现在,假设需要部分更新,您可以将记录存储在与键关联的字典中(即哈希数据类型)。所有写操作都可以在一次往返中完成(即使它们是部分的)。如果 HGETALL 命令是 pipelined,也可以在一次往返中完成多个读取操作。 .

流水线化几个 HGETALL 命令比使用 MGET 消耗更多的 CPU,但没那么多。就延迟而言,它应该没有显着差异,除非您在 Redis 实例上每秒执行数十万个。

关于redis - 在 Redis 中正确建模以编写单个实体但查询多个实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34532374/

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