SimpleCacheRedis
This is an implementation of PSR-16 for
the Redis caching engine., (*1)
Two different classes are provided. The first just provides a PSR-16 compliant
interface to Redis and the second provides encryption of the cached data via
the libsodium extension., (*2)
Please refer to the files INSTALL.md
, USAGE.md
,
and SURVIVAL.md
for more information specific to
SimpleCacheRedis., (*3)
For instructions specific to the encryption option. see the file
SODIUM.md
., (*4)
Please refer to the file LICENSE.md
for the terms of the MIT
License this software is released under., (*5)
About Redis Caching
Redis does far more than just behave as a caching engine, according to the
web site https://redis.io it provides an in-memory data
structure that can be used as a database, cache, and message broker., (*6)
For this PSR-16 implementation, using it as a PHP object cache is all that
matters, but redis itself is capable of some incredible things beyond the scope
of this class., (*7)
While looking at various benchmarks, it appears to me that in the use case
scenarios that best match a PSR-16 implementation, APCu is faster than Redis.
However there are several compelling reasons as to why Redis may be the better
choice for some situations:, (*8)
- Redis cache survives a web server daemon restart.
- Redis cache (unless configured not to) survives a server reboot.
- Redis cache can be made accessible to other servers in your network.
- Redis cache can use a cluster if you have a lot of data you need to have
handled by a caching engine.
If you just have a single server scenario that does not need to share its
cached with other servers, APCu may be the better choice for PSR-16
caching needs, see\
SimpleCacheAPCu
for a PSR-16 implementation for APCu., (*9)
About PHP-FIG and PSR-16
PHP-FIG is the PHP Framework Interop Group. They
exist largely to create standards that make it easier for different developers
around the world to create different projects that will work well with each
other. PHP-FIG was a driving force behind the PSR-0 and PSR-4 auto-load
standards for example that make it much much easier to integrate PHP class
libraries written by other people into your web applications., (*10)
The PHP-FIG previously released PSR-6 as a Caching Interface standard but the
interface requirements of PSR-6 are beyond the needs of many web application
developers. KISS - ‘Keep It Simple Silly’ applies for many of us who do not
need some of the features PSR-6 requires., (*11)
To meet the needs of those of us who do not need what PSR-6 implements,
PSR-16 was developed and is now an
accepted standard., (*12)
When I read PSR-16, the defined interface it was not that different from my
own APCu caching class that I have personally been using for years. So I
decided to make my class meet the interface requirements., (*13)
Then a Redis user asked me if I could possibly adapt the library for Redis. So
I did and this is the result., (*14)
Coding Standard
The coding standard used is primarily
PSR-2 except with the closing ?>
allowed, and the addition of some
PHPDoc requirements largely but not
completely borrowed from the
PEAR standard., (*15)
The intent is switch PHPDoc standard to
PSR-5
if it ever becomes an accepted standard., (*16)
The phpcs
sniff rules being used: psr2.phpcs.xml, (*17)
About AWonderPHP
I may become homeless before the end of 2018. I do not know how to survive, I
try but what I try, it always seems to fail. This just is not a society people
like me are meant to be a part of., (*18)
If I do become homeless, I fear my mental health will deteriorate at an
accelerated rate and I do not want to witness that happening to myself., (*19)
AWonderPHP is my attempt to clean up and package a lot of the PHP classes I
personally use so that something of me will be left behind., (*20)
If you wish to help, please see the SURVIVAL.md file., (*21)
Thank you for your time., (*22)
EOF, (*23)