Barazo AppView backend
barazo.forum
1import { Redis } from 'ioredis'
2import type { FastifyBaseLogger } from 'fastify'
3
4export function createCache(valkeyUrl: string, logger: FastifyBaseLogger) {
5 const cache = new Redis(valkeyUrl, {
6 maxRetriesPerRequest: 3,
7 retryStrategy(times: number) {
8 const delay = Math.min(times * 200, 2000)
9 return delay
10 },
11 lazyConnect: true,
12 })
13
14 cache.on('error', (err: Error) => {
15 logger.error({ err }, 'Valkey connection error')
16 })
17
18 cache.on('connect', () => {
19 logger.info('Connected to Valkey')
20 })
21
22 return cache
23}
24
25export type Cache = ReturnType<typeof createCache>