laravel使用redis哨兵模式(redis-sentinel)

You can install Laravel-PSRedis easily with composer.


"require": {  
        "geniuslinchao/laravel-PSRedis": ">=1.2.10",
        "geniuslinchao/psredis": ">=1.2.1"
    },
    "repositories": [
        {
                "type": "vcs",
                "url": "https://github.com/geniuslinchao/laravel-PSRedis"
        },
        {
                "type": "vcs",
                "url": "https://github.com/geniuslinchao/PSRedis"
        }
     ],
## Configuration
Next, just fill in your sentinel/redis server info in the app/config/database.php config files that already exist in your application.


You may already have some default laravel config values in place in your database config file that looks like this.


/*
|--------------------------------------------------------------------------
| 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.


'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
    ]
    ];  
### 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.


/*
    |--------------------------------------------------------------------------
    | Autoloaded Service Providers
    |--------------------------------------------------------------------------
    |
    */
'providers' => [
...
// 'Illuminate\Redis\RedisServiceProvider', # comment this out
Indatus\LaravelPSRedis\LaravelPSRedisServiceProvider::class,
],
Note: you may have to composer dump-autoload after adding the service provider
## Contributing
Fork it
Create your feature branch (git checkout -b my-new-feature)
Commit your changes (git commit -m 'Added some feature')
Push to the branch (git push origin my-new-feature)
Create new Pull Request
## Testing
Feel free to clone the repo and run the unit tests locally.


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

有话要说