remove redis
Some checks failed
Build & Deploy KLZ Cables / build-and-deploy (push) Failing after 5m50s

This commit is contained in:
2026-01-29 02:23:41 +01:00
parent 1da1f05cdd
commit 4e50482769
14 changed files with 5 additions and 236 deletions

View File

@@ -1,54 +0,0 @@
import { createClient, type RedisClientType } from 'redis';
import type { CacheService, CacheSetOptions } from './cache-service';
export type RedisCacheServiceOptions = {
url: string;
keyPrefix?: string;
};
// Thin wrapper around shared Redis (platform provides host `redis`).
// Values are JSON-serialized.
export class RedisCacheService implements CacheService {
private readonly client: RedisClientType;
private readonly keyPrefix: string;
constructor(options: RedisCacheServiceOptions) {
this.client = createClient({ url: options.url });
this.keyPrefix = options.keyPrefix ?? '';
// Fire-and-forget connect.
this.client.connect().catch((err) => {
// We can't use getServerAppServices() here because it might cause a circular dependency
// during initialization. But we can log to console as a fallback or use a global logger if we had one.
// For now, let's just use console.error as this is a low-level service.
console.error('Redis connection error:', err);
});
}
private k(key: string) {
return `${this.keyPrefix}${key}`;
}
async get<T>(key: string): Promise<T | undefined> {
const raw = await this.client.get(this.k(key));
if (raw == null) return undefined;
return JSON.parse(raw) as T;
}
async set<T>(key: string, value: T, options?: CacheSetOptions): Promise<void> {
const ttl = options?.ttlSeconds;
const raw = JSON.stringify(value);
if (ttl && ttl > 0) {
await this.client.set(this.k(key), raw, { EX: ttl });
return;
}
await this.client.set(this.k(key), raw);
}
async del(key: string): Promise<void> {
await this.client.del(this.k(key));
}
}

View File

@@ -2,7 +2,6 @@ import { AppServices } from './app-services';
import { NoopAnalyticsService } from './analytics/noop-analytics-service';
import { UmamiAnalyticsService } from './analytics/umami-analytics-service';
import { MemoryCacheService } from './cache/memory-cache-service';
import { RedisCacheService } from './cache/redis-cache-service';
import { GlitchtipErrorReportingService } from './errors/glitchtip-error-reporting-service';
import { NoopErrorReportingService } from './errors/noop-error-reporting-service';
import { PinoLoggerService } from './logging/pino-logger-service';
@@ -23,7 +22,6 @@ export function getServerAppServices(): AppServices {
logger.info('Service configuration', {
umamiEnabled: config.analytics.umami.enabled,
sentryEnabled: config.errors.glitchtip.enabled,
redisEnabled: config.cache.redis.enabled,
mailEnabled: Boolean(config.mail.host && config.mail.user),
});
@@ -47,20 +45,8 @@ export function getServerAppServices(): AppServices {
logger.info('Noop error reporting service initialized (error reporting disabled)');
}
const cache = config.cache.redis.enabled && config.cache.redis.url
? new RedisCacheService({
url: config.cache.redis.url,
keyPrefix: config.cache.redis.keyPrefix,
})
: new MemoryCacheService();
if (config.cache.redis.enabled) {
logger.info('Redis cache service initialized', {
keyPrefix: config.cache.redis.keyPrefix
});
} else {
logger.info('Memory cache service initialized (Redis not configured)');
}
const cache = new MemoryCacheService();
logger.info('Memory cache service initialized');
logger.info('Pino logger service initialized', {
name: 'server',