kba-team/cache

Simple cache implementing PSR-16 connecting to Redis using PhpRedis.

1.0.0 2018-02-28 13:25 UTC

README

License: MIT Build Status Maintainability Test Coverage

Simple cache implementing PSR-16: Common Interface for Caching Libraries connecting to Redis using PhpRedis.

Why???

We are aware of the PHP-Cache Project with all sorts of adapters- even for PhpRedis and Predis.

We were in need of a simple cache solution just for Redis without all the bells and whistles of PSR-6 and without all the abstraction layers necessary to implement multiple storage backends.

Usage

Add to your project

composer require kba-team/cache "~1.0.0"

We use Semver.

Single redis server via TCP

<?php
//create object to access the redis server
$redis = \kbATeam\Cache\Redis::tcp('redis-server', 10);
//store value in redis server
if (!$redis->has('hello')) {
    $redis->set('hello', 'Hello World!');
}
//retrieve value from redis server
echo $redis->get('hello');

Testing

Testing requires a running redis server.

Installation

composer install

Run unit tests

A running redis server is required by the unit tests.

vendor/bin/phpunit

You can set the following environment variables to override the default values expected by the unit tests.

  • REDIS_SERVER_HOST: The hostname or IP address of the redis server. Default: 127.0.0.1
  • REDIS_SERVER_PORT: The TCP port the redis server is listening on. Default: 6379
  • REDIS_SERVER_DBINDEX: The database to use on the redis server. Default: 0
  • REDIS_SERVER_PASSWORD: The password used to access the redis server. Default: no password.

Starting a redis docker container

docker run \
    --rm \
    --init \
    --detach \
    --name redis-server \
    redis:3.0

Get the containers' IP address:

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' redis-server