Redis: Almacenamiento en caché de Laravel 8
Redis es un almacén de datos de valor clave y se puede usar con Laravel para almacenar datos en caché cuando, de lo contrario, necesitaría cargar grandes cantidades de datos en tiempo real.
Crear una nueva aplicación de Laravel:
laravel new redis_sandbox cd redis_sandbox composer require predis/predis
Instalar Redis si aún no lo ha hecho:
- Linux:
https://redis.io/topics/quickstart
- Mac:
https://gist.github.com/tomysmile/1b8a321e7c58499ef9f9441b2faa0aa8
- Windows:
https://github.com/microsoftarchive/redis/releases/tag/win-3.0.504
Necesitamos configurar el paquete para usar predis como predeterminado. En .env
:
REDIS_CLIENT=predis
O si lo prefiere puede modificar directamente en database/config.php
:
'client' => env('REDIS_CLIENT', 'predis')
Se sugiere establecer un prefijo para las claves de Redis, para que pueda distinguir qué mensajes provienen de esta aplicación. En la matriz de “opciones” en database.php
:
'prefix' => env('REDIS_PREFIX', 'redis_sandbox_')
Ahora ejecuta la aplicación:
php artisan serve
En web.php
:
<?phpuse App\\Http\\Controllers\\CacheController; use Illuminate\\Support\\Facades\\Route; use Illuminate\\Support\\Facades\\Redis;/* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */Route::get('/', function () { $visits = Redis::incr('visits'); return $visits; });
Cualquiera de los métodos a los que se refiere estáticamente la fachada se remitirá a los comandos enumerados aquí a través de redis-cli https://redis.io/commands.
El comando anterior Redis::incr()
se refiere a este comando redis-cli https://redis.io/commands/incr y simplemente incrementa un número entero en 1 cada vez. Un posible caso de uso podría ser la cantidad de visitantes a un sitio web.
Si ahora accede a la página en http://127.0.0.1:8000
(o donde sea que esté alojando la página), debería ver un número que comienza en 1 y aumenta cada vez que actualiza la página. Puede ver que conserva los datos.
Ahora, si cambiamos a la terminal y usamos el comando redis-cli
, ahora podrá consultar a través del cli.
En este ejemplo, hemos creado una clave llamada “visitas” y el prefijo “redis_sandbox_” database.php
.
Este es el almacenamiento en caché básico de Redis, estoy planeando mostrar otras cosas que podemos hacer con Laravel.