upd: make hashtagservice compatible with redis 6.3

This commit is contained in:
Mar0xy 2023-11-01 14:47:36 +01:00
parent a5efe11350
commit 4fbd9dcfbf
No known key found for this signature in database
GPG key ID: 56569BBE47D2C828

View file

@ -176,18 +176,28 @@ export class HashtagService {
// チャート用
redisPipeline.pfadd(`hashtagUsers:${hashtag}:${window}`, userId);
redisPipeline.expire(`hashtagUsers:${hashtag}:${window}`,
60 * 60 * 24 * 3, // 3日間
'NX', // "NX -- Set expiry only when the key has no expiry" = 有効期限がないときだけ設定
);
const TTLwindow = await this.redisClient.ttl(`hashtagUsers:${hashtag}:${window}`);
if (TTLwindow === -1) {
redisPipeline.expire(`hashtagUsers:${hashtag}:${window}`,
60 * 60 * 24 * 3, // 3日間
//'NX', // "NX -- Set expiry only when the key has no expiry" = 有効期限がないときだけ設定
);
}
// ユニークカウント用
// TODO: Bloom Filter を使うようにしても良さそう
redisPipeline.sadd(`hashtagUsers:${hashtag}`, userId);
redisPipeline.expire(`hashtagUsers:${hashtag}`,
60 * 60, // 1時間
'NX', // "NX -- Set expiry only when the key has no expiry" = 有効期限がないときだけ設定
);
const TTL = await this.redisClient.ttl(`hashtagUsers:${hashtag}`);
if (TTL === -1) {
redisPipeline.expire(`hashtagUsers:${hashtag}`,
60 * 60, // 1時間
//'NX', // "NX -- Set expiry only when the key has no expiry" = 有効期限がないときだけ設定
);
}
redisPipeline.exec();
}