Redis is a noSQL database with very good scaling characteristics in proportion to the amount of entries and data size.
See also: http://redis.io/
See also: https://github.com/nicolasff/phpredis Available backend options: - defaultLifetime: The default lifetime of a cache entry - hostname: The hostname (or socket filepath) of the redis server - port: The TCP port of the redis server (will be ignored if connecting to a socket) - database: The database index that will be used. By default, Redis has 16 databases with index number 0 - 15 Requirements: - Redis 2.6.0+ (tested with 2.6.14 and 2.8.5) - phpredis with Redis 2.6 support, e.g. 2.2.4 (tested with 92782639b0329ff91658a0602a3d816446a3663d from 2014-01-06) Implementation based on ext:rediscache by Christopher Hlubek - networkteam GmbH Each Redis key contains a prefix built from the cache identifier, so one single database can be used for different caches. Cache entry data is stored in a simple key. Tags are stored in Sets. Since Redis < 2.8.0 does not provide a mechanism for iterating over keys, a separate list with all entries is populated
Inheritance: extends AbstractBackend, implements Neos\Cache\Backend\TaggableBackendInterface, implements IterableBackendInterface, implements Neos\Cache\Backend\FreezableBackendInterface, implements Neos\Cache\Backend\PhpCapableBackendInterface, use trait RequireOnceFromValueTrait
 /**
  * Constructs this backend
  *
  * @param ApplicationContext $context Flow's application context
  * @param array $options Configuration options - depends on the actual backend
  * @param \Redis $redis
  */
 public function __construct(ApplicationContext $context, array $options = [], \Redis $redis = null)
 {
     $this->context = $context;
     if ($redis !== null) {
         $options['redis'] = $redis;
     }
     $environmentConfiguration = $this->createEnvironmentConfiguration($context);
     parent::__construct($environmentConfiguration, $options);
 }
 /**
  * @test
  */
 public function expiredEntriesAreSkippedWhenIterating()
 {
     $this->backend->set('entry1', 'foo', [], 1);
     sleep(2);
     $this->assertFalse($this->backend->has('entry1'));
     $actualEntries = [];
     foreach ($this->backend as $key => $value) {
         $actualEntries[] = $key;
     }
     $this->assertEmpty($actualEntries, 'Entries should be empty');
 }
 /**
  * @test
  */
 public function hasInvokesRedis()
 {
     $this->redis->expects($this->once())->method('exists')->with('Foo_Cache:entry:foo')->will($this->returnValue(true));
     $this->assertEquals(true, $this->backend->has('foo'));
 }