HotTRDealsBackend/services/redis/idGenerator.service.js
2026-02-04 06:39:10 +00:00

29 lines
680 B
JavaScript

const { getRedisClient } = require("./client")
function createRedisClient() {
return getRedisClient()
}
async function ensureCounterAtLeast(key, minValue) {
const redis = createRedisClient()
try {
const currentRaw = await redis.get(key)
const current = currentRaw ? Number(currentRaw) : 0
if (!Number.isFinite(current) || current < minValue) {
await redis.set(key, String(minValue))
return minValue
}
return current
} finally {}
}
async function nextId(key) {
const redis = createRedisClient()
try {
const value = await redis.incr(key)
return Number(value)
} finally {}
}
module.exports = { ensureCounterAtLeast, nextId }