gpt4 book ai didi

Redis 数据类型,用于存储具有不同分数的相同值

转载 作者:IT王子 更新时间:2023-10-29 06:08:55 28 4
gpt4 key购买 nike

场景是:当我运行测试时,如果它失败,则将时间戳和失败值存储在 redis 中,如果所有测试都失败,则获取同一测试的最后三个时间戳和值,然后发送电子邮件给项目负责人。

我正在考虑在 redis 中的排序 zset 中添加分数:

zadd Health:TestName timestamp1 "Fail"
zadd Health:TestName timestamp2 "Success"
zadd Health:TestName timestamp3 "Fail"
zadd Health:TestName timestamp4 "Fail"
zadd Health:TestName timestamp5 "Fail"

因此,如果我现在运行测试 TestName,如果失败,我会获取最后三个时间戳和值,并检查是否全部失败。如果全部失败,则发送电子邮件。但是 Zadd 不允许我为不同的分数添加相同的值。存储此数据的其他方式可能是什么。

注意。我必须只使用 redis

最佳答案

这里的“技巧”是使成员唯一,最简单的方法是将结果和时间戳连接起来,即:

zadd Health:TestName timestamp1 "Fail:timestamp1"
zadd Health:TestName timestamp2 "Success:timestamp2"
zadd Health:TestName timestamp3 "Fail:timestamp3"
zadd Health:TestName timestamp4 "Fail:timestamp4"
zadd Health:TestName timestamp5 "Fail:timestamp5"

然后,在获取成员时,只需忽略后缀即可。

提示:为了节省 RAM,请改用尽可能短的字符串。在您的情况下,不要使用“失败”和“成功”,只需使用 0 和 1(或“F”和“S”...),从而为每个成员节省 9 个字节。您还可以在连接额外保存的字节时去掉冒号 (":"),即 Ftimestamp1Stimestamp2 等等。

关于Redis 数据类型,用于存储具有不同分数的相同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46399219/

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