Feature #9017

Implement redis as cache backend

Added by Christian Kuhn over 10 years ago. Updated about 10 years ago.

Status:
Resolved
Priority:
Could have
Category:
Cache
Start date:
Due date:
% Done:

100%

Estimated time:
PHP Version:
Has patch:
Complexity:

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


Files

redis.diff (49.3 KB) redis.diff Christian Kuhn, 2010-07-25 21:37
#1

Updated by Karsten Dambekalns over 10 years ago

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

Updated by Christian Kuhn about 10 years ago

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

Updated by Karsten Dambekalns about 10 years ago

  • Assignee set to Christian Kuhn
  • Target version set to 1.0 alpha 13

Also available in: Atom PDF