2017 © Pedro Peláez
 

library laravel-ps-redis

A simple sentinel/redis driver wrapper for laravel.

image

indatus/laravel-ps-redis

A simple sentinel/redis driver wrapper for laravel.

  • Saturday, April 29, 2017
  • by Olofguard
  • Repository
  • 7 Watchers
  • 44 Stars
  • 24,157 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 14 Forks
  • 2 Open issues
  • 7 Versions
  • 10 % Grown

The README.md

Laravel-PSRedis

DEPRECATED, see https://github.com/laravel/framework/pull/18850 for built-in sentinel support, (*1)

A simple sentinel/redis driver wrapper for laravel., (*2)

The default laravel redis driver supports redis clusters, however, it does not support high availability with redis, which is where Laravel-PSRedis comes to the rescue., (*3)

With Laravel-PSRedis you'll get all the laravel redis magic that you aleady have such as Redis::set() and Redis::get(), and even session, queue, and cache support using redis, you'll just be able to leverage High Avaliability redis instances instead of a simple cluster., (*4)

We do this by asking your Redis Sentinels the location of your master before creating our Redis bindings in the IOC Container. By doing this we ensure anytime your app has a connection to your redis instance, that connection is to master., (*5)

README Contents

, (*6)

Installation

, (*7)

Installation for Laravel 5

You can install Laravel-PSRedis easily with composer., (*8)

    "require": {  
        "indatus/laravel-ps-redis": "^1.2",
    },

, (*9)

Installation for Laravel 4

If you're using Laravel 4 then the installation is slightly different. Laravel-PSRedis depends on sparkcentral/psredis which requires 'predis/predis': '>=1.0' in it's stable release. I've taken the liberty of forking sparkcentral/psredis and rolling back predis/predis to 0.8.7 which is required by laravel 4. To utilize this fork simply require both indatus\larave-ps-redis and sparkcentral/psredis in your composer.json. And add a repository to point to the fork. Like so:, (*10)

    "repositories": [  
        {
            "type": "vcs",
            "url": "https://github.com/Olofguard/PSRedis"
        }
    ],
    "require": {  
        "indatus/laravel-ps-redis": "dev-master",
        "sparkcentral/psredis": "dev-master"        
    },

This will help composer form an installable set of packages, otherwise composer complains about laravel needing predis/predis at version 0.8.7 while sparkcentral/psredis is installing 1.0.*., (*11)

, (*12)

Configuration

Next, just fill in your sentinel/redis server info in the app/config/database.php config files that already exist in your application., (*13)

You may already have some default laravel config values in place in your database config file that looks like this., (*14)

/*
    |--------------------------------------------------------------------------
    | Redis Databases
    |--------------------------------------------------------------------------
    |
    | Redis is an open source, fast, and advanced key-value store that also
    | provides a richer set of commands than a typical key-value systems
    | such as APC or Memcached. Laravel makes it easy to dig right in.
    |
    */
    'redis' => [
        'cluster' => false,
        'default' => [
            'host'     => '127.0.0.1',
            'port'     => 6379,
            'database' => 0,
        ],
    ],

Just overwrite those with the values below and fill in your server info., (*15)

    'redis' => [

        /** the name of the redis node set */
        'nodeSetName' => 'sentinel-node-set',

        'cluster' => false,

        /** Array of sentinels */
        'masters' => [
            [
                'host' => 'sentinel-instance.domain.com',
                'port' => '26379',
            ],
            [
                'host' => 'sentinel-instance.domain.com',
                'port' => '26379',
            ]
        ],

        /** how long to wait and try again if we fail to connect to master */
        'backoff-strategy' => [
            'max-attempts' => 10, // the maximum-number of attempt possible to find master
            'wait-time' => 500,   // miliseconds to wait for the next attempt
            'increment' => 1.5, // multiplier used to increment the back off time on each try
        ]
    ];  

, (*16)

The Service Provider

Finally, you just need to add the service provider to the providers array in app.php and comment or remove the redis service provider., (*17)

    /*
    |--------------------------------------------------------------------------
    | Autoloaded Service Providers
    |--------------------------------------------------------------------------
    |
    */
    'providers' => [
        ...
        // 'Illuminate\Redis\RedisServiceProvider', # comment this out
        'Indatus\LaravelPSRedis\LaravelPSRedisServiceProvider' # add this
    ],

Note: you may have to composer dump-autoload after adding the service provider, (*18)

, (*19)

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -m 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

, (*20)

Testing

Feel free to clone the repo and run the unit tests locally., (*21)

    ./vendor/bin/phpunit -c ./phpunit.xml 

, (*22)

License

The MIT License (MIT), (*23)

The Versions

29/04 2017

dev-master

9999999-dev

A simple sentinel/redis driver wrapper for laravel.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Damien Russell

02/02 2017

v2.0

2.0.0.0

A simple sentinel/redis driver wrapper for laravel.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Damien Russell

31/01 2017

v1.3

1.3.0.0

A simple sentinel/redis driver wrapper for laravel.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Damien Russell

07/07 2016

v1.2.1

1.2.1.0

A simple sentinel/redis driver wrapper for laravel.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Damien Russell

24/06 2016

v1.2

1.2.0.0

A simple sentinel/redis driver wrapper for laravel.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Damien Russell

07/05 2015

v1.1

1.1.0.0

A simple sentinel/redis driver wrapper for laravel.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Damien Russell

18/02 2015

v1.0

1.0.0.0

A simple sentinel/redis driver wrapper for laravel.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Damien Russell