Skip to main content

How to set up

Install​

npm install @o2s/integrations.redis --workspace=@o2s/configs.integrations

Set up Redis instance​

You need to set up your own Redis instance. We do not provide a Docker configuration for Redis. For detailed installation and setup instructions, refer to the official Redis documentation.

Local installation​

For local installation instructions, refer to the official Redis installation guide.

Production​

Consider managed services: Redis Cloud, AWS ElastiCache, Azure Cache, Google Memorystore.

Configuration​

After installing the package, you need to configure the integration in the @o2s/configs.integrations package. This tells the framework to use Redis Cache instead of the default mocked integration.

Step 1: Update the cache integration config​

Open the file packages/configs/integrations/src/models/cache.ts and replace the import:

Before (using mocked integration):

import { Config, Integration } from '@o2s/integrations.mocked/integration';

After (using Redis Cache integration):

import { Config, Integration } from '@o2s/integrations.redis/integration';

The complete file should look like this:

import { Config, Integration } from '@o2s/integrations.redis/integration';

import { ApiConfig } from '@o2s/framework/modules';

export const CacheIntegrationConfig: ApiConfig['integrations']['cache'] = Config.cache!;

export import Service = Integration.Cache.Service;

Step 2: Verify AppConfig​

The AppConfig in apps/api-harmonization/src/app.config.ts should already reference Cache.CacheIntegrationConfig. You don't need to modify this file - it automatically uses the configuration from @o2s/configs.integrations.

Configure environment variables​

CACHE_ENABLED=true
CACHE_TTL=3600
CACHE_REDIS_HOST=localhost
CACHE_REDIS_PORT=6379
CACHE_REDIS_PASS=REDIS_PASS

TTL recommendations​

  • Short (300-1800s): Frequently changing data
  • Medium (1800-7200s): CMS content, API responses
  • Long (7200-86400s): Static configuration

Verify connection​

Start the API Harmonization server. Successful connection logs:

[REDIS] Successfully connected to redis

Test manually:

redis-cli -h localhost -p 6379 -a REDIS_PASS ping
# Expected: PONG

Troubleshooting​

ProblemSolution
Cannot connectVerify Redis is running: redis-cli ping
Authentication failedCheck CACHE_REDIS_PASS matches Redis password
Cache returns undefinedVerify CACHE_ENABLED=true