Feature #9017

Implement redis as cache backend

Added by Christian Kuhn about 5 years ago. Updated over 4 years ago.

Status:Resolved Start date:
Priority:Could have Due date:
Assigned To:Christian Kuhn % Done:

100%

Category:Cache
Target version:TYPO3 Flow Base Distribution - 1.0 alpha 13
PHP Version: Complexity:
Has patch:

Description

Redis [1] is a noSQL database with very good scaling characteristics in relation to the amount of entries and data size. This makes redis perfectly fit to our needs as a caching backend. It's a young, but very active project with currently very high development speed.

Performance measurements show that this backend easily outperforms every other existing backend in most use cases, especially when in comes to larger data sizes with tons of entries. All base operations scale O(1) with the number of cache entries (not with the number of affected entries).

There are different adapters for php, this backend implementation uses phpredis, which is a redis implementation as php module [2]

This backend is tested with:
- redis version >= 2.0.0-rc2, version 1.2.0 does not work
- phpredis, git version 0abb9e5ec07b8a8c20b5 from 2010-07-18, prior versions should work, but have a major performance issue with data sizes > 8kb.

This is my first real contribution to FLOW3, i hope code quality is high enough and unit tests have acceptable code coverage. Please give feedback if anything needs to be improved.

The v4 backport of this backend already exists and is in production for early adapters, it will hopefully make it to v4.5, as soon as FLOW3 accepted the implementation.

[1] http://code.google.com/p/redis/
[2] http://github.com/owlient/phpredis

redis.diff Magnifier (49.3 kB) Christian Kuhn, 2010-07-25 21:37

Associated revisions

Revision 7f115285
Added by Christian Kuhn over 4 years ago

[+FEATURE] FLOW3 (Cache): Implement redis as cache backend

Redis is a noSQL database with very good scaling characteristics
in relation to the amount of entries and data size and fits perfectly
to our needs as a caching backend. This implementation uses the
phpredis PHP module.

Resolves: #9017

Change-Id: I04c16e9fc20ee8bfa3bf19e60957dda82126037e

Revision 923af427
Added by Robert Lemke over 4 years ago

[~TASK] FLOW3 (Cache): Rename Redis Cache Backend

This renames the cache backend formerly named "PhpredisRedisBackend"
to "RedisBackend".

If there should be, at some point in the future, a second implementation
of a Redis backend, or another way for accessing Redis should be supported,
then this should be solved with a configuration option for this RedisBackend.

Relates to: #9017

Change-Id: I5cc2988b424f490db8eddad8023af7b2fb4fe9ca

Revision dd78aca1
Added by Karsten Dambekalns over 4 years ago

[~TASK] FLOW3 (Cache): Clean up the RedisBackend

Some comments and a useless method have been removed, the exception
lines have been compacted and an incorrect author line was dumped.

Relates to: #9017
Change-Id: I52866d669ce746f53ae705ab10e51da40566658e

History

#1 Updated by Karsten Dambekalns almost 5 years ago

  • Priority changed from Should have to Could have
  • Start date deleted (2010-07-25)

#2 Updated by Christian Kuhn over 4 years ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 100

#3 Updated by Karsten Dambekalns over 4 years ago

  • Assigned To set to Christian Kuhn
  • Target version set to 1.0 alpha 13

Also available in: Atom PDF