Extension · moselwal/keyvalue-store

keyvalue-store — Redis/Valkey, production-grade.

TYPO3 caching framework, sessions, KV storage and distributed locking on Redis or Valkey. With Sentinel support, TLS/mTLS encryption and PHPRedis 6.3+. Works from TYPO3 11.5 to 14.0 — same extension, same configuration.

Das Problem

TYPO3 caching is standard — but really production-ready?

With keyvalue-store

  • TYPO3 caching framework backends for pages, hash, RootlinePath, ImageSizes, etc.
  • Session storage in Redis/Valkey with replication awareness
  • Distributed locking across all nodes
  • Sentinel support out of the box
  • TLS and mTLS as a configuration option

Until now

  • Standard Redis backend without Sentinel awareness
  • Sessions in the database — unnecessary load
  • Locking as file lock or DB lock — not cluster-capable
  • TLS/mTLS configuration as custom hack

Four building blocks

Sentinel & mTLS

Sentinel discovery enables automatic failover. mTLS configuration for encrypted inter-service communication in container setups.

Distributed locking

Redlock implementation for distributed locks — e.g. for scheduler tasks or workflow steps that should run only once cluster-wide.

Session storage

Frontend and backend sessions in Redis/Valkey — takes load off the database and makes multi-node setups seamless.

Caching backends

Drop-in backends for all TYPO3 caching framework caches: pages, hash, RootlinePath, ImageSizes — including tag-based flushing.

Installation: composer require moselwal/keyvalue-store

TYPO3: 11.5 – 14.0 · PHP: 8.2+ · Required: ext-redis (>= 6.3)

Add the Composer repository at gitlab.moselwal.io, then run composer require moselwal/keyvalue-store. Configure via moselwal/typo3-config or classically in LocalConfiguration.

Architecture and requirements

Classes/
├── Cache/           # TYPO3 caching framework backends
├── Connection/      # Redis connection management, Sentinel, TLS
├── Locking/         # Distributed locking strategy
└── Session/         # Session storage backends

 

Requirements

Configuration

We recommend configuring through moselwal/typo3-config — it integrates seamlessly. Manual configuration via config/config.php is also possible:

 

$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['my_cache'] = [
    'backend' => \Moselwal\KeyvalueStore\Cache\RedisBackend::class,
    'options' => [
        'hostname' => 'redis',
        'port' => 6379,
        'database' => 3,
    ],
];

 

TLS/mTLS

For encrypted connections, supply certificate paths or use auto-discovery from /run/tls/.

Dependencies

PackageTypePurpose
ext-redis (>= 6.3)RequiredPHPRedis extension
moselwal/devDevShared QA tooling

Source code & docs

TYPO3 Extension Repository

Not in the official TER — install via Composer only.

Composer package

moselwal/keyvalue-store via the Moselwal Composer repo.

Open the Composer repo

GitLab (source of truth)

Primary repository including CI/CD and Composer package registry.

gitlab.moselwal.io

GitHub

GitHub mirror (placeholder — verify before publish).

github.com/moselwal/keyvalue-store
Nächster Schritt

Cluster setup or migration from the standard backend?

For migration from the standard Redis backend, Sentinel setup or mTLS configuration in production, we are happy to support you as a service.

Cluster-Setup besprechen

Oder direkt schreiben: kontakt@moselwal.de