gpt4 book ai didi

node.js - 在分数上使用 zscan

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

根据这个https://github.com/NodeRedis/node_redis/issues/896

我有 zset ,我正在将 token (元素)保存到相应的时间戳(分数)

现在我想使用 zscan 删除早于特定时间戳的 token 。

redis.zscan('my_key', cursor[i], 'MATCH', '*', "COUNT", count, function(err, 
console.log(err);
console.log(reply);
});

我遇到的问题是 zscan 将返回所有值,而不考虑时间戳。
此“MATCH”参数检查元素( token )上的模式。我想获得比某个特定时间戳(分数)更早的所有 token 。

例如:

var startingTime = new Date().getTime();


redis.zrangebyscore("iflychat_auth_token", 0, startingTime - 43200000 * 2 * 7, function (error, data) {
// This will return all token older the 7 days.
});

有没有办法在分数上使用“MATCH”像这样的东西

redis.zscan('my_key', cursor[i], 'MATCH', < timestamp, "COUNT", count, function(err, 
console.log(err);
console.log(reply);
});

最佳答案

ZSCAN 没有分数范围选项。最简单的替代方法是使用 Redis 的 ZREMRANGEBYSCORE ,可能是这样的:

redis.zremrangebyscore('my_key','-inf', timestamp, function(error,data) { ... });

注意:如果您需要独占范围,即 <timestamp,请在发送值时在其前面加上 (

关于node.js - 在分数上使用 zscan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38457723/

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