Home > Backend Development > PHP Tutorial > Detailed explanation of implementation steps for laravel to use Redis to implement website cache reading

Detailed explanation of implementation steps for laravel to use Redis to implement website cache reading

php中世界最好的语言
Release: 2023-03-26 10:30:01
Original
2088 people have browsed it

This time I will bring you a detailed explanation of the implementation steps of laravel using Redis to implement website cache reading. What are the precautions for laravel using Redis to implement website cache reading. The following is a practical case. Let’s take a look. one time.

Introduction to redis

Redis is completely open source and free, complies with the BSD protocol, and is a high-performance key-value database. Redis and other key-value
caching products have the following three characteristics: Redis supports data persistence, which can keep the data in the memory on the disk and can be loaded again for use when restarting.

Redis not only supports simple key-value type data, but also provides storage of data structures such as list, set, zset, and hash.

Redis supports data backup, that is, data backup in master-slave mode.

Redis Advantages

  • Extremely high performance – Redis can read at 110,000 times/s and write at a speed of 110,000 times/s It is 81,000 times/s.

  • RichData Types – Redis supports Strings, Lists, Hashes, Sets and Ordered Sets data type operations for binary cases.

  • Atomic - All operations of Redis are atomic, and Redis also supports atomic execution of several operations after they are fully merged.

  • Rich features – Redis also supports publish/subscribe, notifications, key expiration and other features.

How to install redis

1.Ubuntu (because I am using the Homestead environment and the virtual machine is Ubuntu) I have only used this method to install. For Windows, please go to http://www.redis.net.cn/tutor or http://www.jb51.net/article/84071.htm... )

Official Ubuntu installation method

$sudo apt-get update
$sudo apt-get install redis-server
Copy after login

Since my website uses the laravel framework, I need to use the composer method to install it

composer require predis/predis
Copy after login

If you install the lumen micro-framework, you also need to install illuminate/redis ( 5.2.*)

composer require illuminate/redis (5.2.*)
Copy after login

Configuration

If lumen is installed

//需要在bootstrap/app.php里面加入此段代码
$app->register(Illuminate\Redis\RedisServiceProvider::class);
$app->configure('database');
Copy after login

Redis can be used as the main database, so Laravel The configuration information of Redis is located in config/database.php:

'redis' => [
'cluster' => false,
'default' => [
 'host' => '127.0.0.1',
 'port' => 6379,
 'database' => 0,
],
],
Copy after login

The cluster option indicates whether to perform sharding between multiple Redis nodes. Here we only test one node locally, so we set it to false.

The default option indicates the default Redis host connection. Here Redis and the Web server share a host, so the host is 127.0.0.1 and the Redis default port is 6379.

In addition, the default option also supports more connection parameters (if needed):

Parameters

Meaning

Default value
hostServer IP address/host name127.0.0.1
portRedis server listening port number6379
password If the server requires an authentication passwordDo not use a password

database

The database index selected when connecting

No index is set

timeout

Timeout for connecting to the Redis server5 seconds
read_write_timeoutTimeout for read and write operations through network connection

System default (set to -1 if the timeout is not limited)

read_write_timeout |通过网络连接进行读写操作的超时时间 |系统默认(不限制超时时间的话设置为-1)

另外Redis如果是作为缓存工具,还需要在config/cache.php配置redis选项:

'redis' => [
'driver' => 'redis',
'connection' => 'default',
],
Copy after login

这里的connection对应config/database中redis的默认主机default配置。

完成上述配置之后我们就可以在应用代码中使用Redis进行数据存取了。

看一个实例————laravel的mysql与Redis搭配

我的想法是在读取的时候会先去缓存中去查找,如果找到那就大吉大利了,找不到再去数据库中查找并且调到缓存中。

 if (Cache::has($key)){    //首先查寻cache如果找到
  $values = Cache::get($>key); //直接读取cache
  return $values;
 }else{         //如果cache里面没有  
  $values = DB::select($sql);
  Cache::put($key,$value,$time);
  return $values;
 }
Copy after login

但是laravel的cache还提供了个remember函数

 $values = Cache::remember($key,$time,function () {
   return DB::select($this->sql);
  });
Copy after login

如果缓存有直接读取并返回,如果缓存项在缓存中不存在,则返回给 remember 方法的闭包将会被运行,而且闭包的运行结果将会被存放在缓存中。

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

php微信模板消息推送步骤详解

PHP动态添加XML数据步骤详解

The above is the detailed content of Detailed explanation of implementation steps for laravel to use Redis to implement website cache reading. 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