How Laravel framework uses Redis

不言
Release: 2023-03-28 17:58:02
Original
3010 people have browsed it

This article mainly introduces the method of using Redis in the Laravel framework. It analyzes the configuration, usage and related operation precautions of the Redis database in the Laravel framework in detail in the form of examples. Friends in need can refer to it

The example in this article describes how the Laravel framework uses Redis. Share it with everyone for your reference, the details are as follows:

Installation

Using redis in laravel first requires you to install the predis/predis package through Composer:

composer require predis/predis
Copy after login

Configuration

The configuration file of redis is: config/database.php

 'redis' => [
    'client' => 'predis',
    'default' => [
      'host' => env('REDIS_HOST', '127.0.0.1'),
      'password' => env('REDIS_PASSWORD',null),
      'port' => env('REDIS_PORT', 6379),
      'database' => 0,
    ],
  ],
Copy after login

You don’t need to change this when you test it. The other place is the .env file

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
Copy after login

These are relevant information. In fact, you don’t need to change it. Let's not talk about the problem of redis cluster here, but let's talk about the use of single redis first.

Test

First you need a route:

//redis测试
Route::get('testRedis','RedisController@testRedis')->name('testRedis');
Copy after login

Utilize The artisan command creates a controller

php artisan make:controller RedisController
Copy after login

Then we introduce the corresponding class and create a method in the controller.

Because after we installed it through composer, the laravel framework has helped us register and support redis in the app.php configuration file, so we can use it directly. (Member class is the data table model I tested myself, so don’t bother with it)

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Member;
use Illuminate\Support\Facades\Redis;
class RedisController extends Controller
{
  public function testRedis()
  {
    Redis::set(&#39;name&#39;, &#39;guwenjie&#39;);
    $values = Redis::get(&#39;name&#39;);
    dd($values);
    //输出:"guwenjie"
    //加一个小例子比如网站首页某个人员或者某条新闻日访问量特别高,可以存储进redis,减轻内存压力
    $userinfo = Member::find(1200);
    Redis::set(&#39;user_key&#39;,$userinfo);
    if(Redis::exists(&#39;user_key&#39;)){
      $values = Redis::get(&#39;user_key&#39;);
    }else{
      $values = Member::find(1200);//此处为了测试你可以将id=1200改为另一个id
     }
    dump($values);
  }
}
Copy after login

Error question

When you complete the above operation and run it, you may get this error:

(1/1) ConnectionException
����Ŀ����������ܾ����޷����ӡ� [tcp://127.0.0.1:6379]
in AbstractConnection.php (line 155)
at AbstractConnection->onConnectionError(&#39;����Ŀ����������ܾ����޷����ӡ�&#39;, 10061)
in StreamConnection.php (line 128)
....
Copy after login

In fact, this problem is not a problem, but many people may get into trouble when they first use it.

This is because the redis service is not installed and started on your server, just like mysql. The prerequisite for use is that it is installed and started successfully.

I tested it under windows, so I will talk about windows. I will write related redis articles in the future, and the installation, startup and use of Linux will be introduced.

First download the windows version: https://redis.io/download

Or use the one I downloaded, the version is: 4.0.8

In fact, the following is also This is a tutorial on how to install Redis in Windows

Extract the compressed package you just downloaded, change the name to Redis (optional) and place it on the C drive

Open the cmd window under this path and enter directly redis.exe

The following content is displayed to indicate that the installation and startup were successful. (Note: If you want to operate from the command line, you should open another cmd window. This cannot be closed)

If you don’t want to go to this directory to start every time, please configure the environment variables.

Now you can rerun the request in Laravel and it will run normally.

Related recommendations:

Detailed explanation of pjax use cases in laravel framework

laravel framework implementation of search function code analysis

The above is the detailed content of How Laravel framework uses Redis. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template