FPP-DB1 / laravel-elasticache by fpp-db1

Add new cache and session driver to use AWS ElastiCache with auto discovery
557
2
2
Package Data
Maintainer Username: fpp-db1
Maintainer Contact: rafael.labegalini@db1.com.br (DB1 Global Software)
Package Create Date: 2017-02-01
Package Last Update: 2017-03-31
Language: PHP
License: Apache-2.0
Last Refreshed: 2019-05-14 03:29:22
Package Statistics
Total Downloads: 557
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 2
Total Watchers: 2
Total Forks: 0
Total Open Issues: 0

Laravel Elasticache

Este pacote tem como finalidade adicionar um novo driver chamado elasticache para você usar como driver de cache e de sessão no Laravel. O pacate usa o Memcached como servidor de armazenamento e é compatível com a extensão do Memcached desenvolvida pela própria Amazon. Esta extensão tem como diferencial, a descoberta automática dos nós do seu cluster sem a necessidade de adicionar os nós manualmente.

Instalação

Para instalar o pacote, basta usar o composer

composer require db1-fpp/laravel-elasticache

Depois basta adicionar o provider nas configurações da aplicação localizado no arquivo config/app.php

Db1Fpp\Providers\ElastiCacheServiceProvider::class

Ou com Lumen

$app->register(Db1Fpp\Providers\ElastiCacheLumenServiceProvider::class);

Configuração

O primeiro passo é adicionar a lista de servidores do Elasticache que você irá usar na sua aplicação. Isto deve ser feito no arquivo de configuração de cache do laravel.

// config/cache.php

[
    //... others cache config
    
    'elasticache' => [
        'default' => [
            'mode'  => env('MEMCACHED_CACHE_MODE', 'dynamic'),
            'nodes' => [
                [
                    'host'   => env('MEMCACHED_CACHE_HOST', '127.0.0.1'),
                    'port'   => env('MEMCACHED_CACHE_PORT', 11211),
                    'weight' => env('MEMCACHED_CACHE_WEIGHT', 100)
                ]
            ]
        ],
        'sessions' => [
            'mode'  => env('MEMCACHED_SESSION_MODE', 'dynamic'),
            'nodes' => [
                [
                    'host'   => env('MEMCACHED_SESSION_HOST', '127.0.0.1'),
                    'port'   => env('MEMCACHED_SESSION_PORT', 11211),
                    'weight' => env('MEMCACHED_SESSION_WEIGHT', 100)
                ]
            ]
        ]
    ]
]

A chave connections aceita um array onde você pode definir várias conexões que poderão ser usadas pelas sua aplicação, veremos mais a frente como.

mode: indica qual modo será usado para descoberta dos nós do seu cluster. Os valores possíveis são static e dynamic

OBS: PARA USAR O MODO dynamic OBRIGATÓRIAMENTE VOCÊ PRECISA INSTALAR A EXTENSÃO DO MEMCACHED FORNECIDA PELA AMAZON

nodes: são os nós que fazem parte do seu cluster. Caso você esteja usando o modo dynamic aqui deverá ser adicionado o endpoit de configuração fornecido pela Amazon

Utilização

Após adicionar as configurações do cluster, você estará apto para utilizar o driver elasticache para cache e também para sessão.

/*
 * config/cache.php
 *
 * Other stores before here...
 */
 'elasticache' => [
    'driver' => 'elasticache'
    'connection' => 'default'
 ]

Você também pode usar como driver de sessão inclusive com a possibilidade de usar um servidor diferente do que é utilizado para armazenamento do cache.

/*
 * config/session.php
 */
 
 'driver' => 'elasticache'
 
 // ...other sessions configs here
 
 'elasticache_connection' => 'sessions'

License

MIT