Home >Backend Development >PHP Tutorial >Detailed explanation of implementation steps for laravel to use Redis to implement website cache reading
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
Since my website uses the laravel framework, I need to use the composer method to install it
composer require predis/predis
If you install the lumen micro-framework, you also need to install illuminate/redis ( 5.2.*)
composer require illuminate/redis (5.2.*)
Configuration
If lumen is installed
//需要在bootstrap/app.php里面加入此段代码 $app->register(Illuminate\Redis\RedisServiceProvider::class); $app->configure('database');
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, ], ],
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 |
---|---|---|
host | Server IP address/host name | 127.0.0.1 |
port | Redis server listening port number | 6379 |
password | If the server requires an authentication password | Do not use a password |
database |
The database index selected when connecting |
No index is set |
timeout |
Timeout for connecting to the Redis server | 5 seconds |
read_write_timeout | Timeout 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', ],
这里的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; }
但是laravel的cache还提供了个remember函数
$values = Cache::remember($key,$time,function () { return DB::select($this->sql); });
如果缓存有直接读取并返回,如果缓存项在缓存中不存在,则返回给 remember 方法的闭包将会被运行,而且闭包的运行结果将会被存放在缓存中。
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
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!