laravel利用Redis来实现网站缓存读取

news/2024/4/28 23:15:29/文章来源:https://blog.csdn.net/weixin_34050427/article/details/88863489

教科书式开头————先看一下redis的简介

  • Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis 与其他 key - value
  • 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。

Redis 优势

  • 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
  • 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
  • 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
  • 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

如何安装redis

1.Ubuntu(因为我用的是Homestead环境虚拟机是Ubuntu的所以只用过这一种方法安装,Windows请到http://www.redis.net.cn/tutor...)
官方给的Ubuntu安装方法

$sudo apt-get update
$sudo apt-get install redis-server

由于我的网站采用的laravel的框架,要使用composer的方法安装

composer require predis/predis

如果安装了lumen微框架还需要安装illuminate/redis (5.2.*)

composer require illuminate/redis (5.2.*)

配置

如果安装了lumen

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

Redis可以用作主数据库,所以Laravel中Redis的配置信息位于config/database.php中:

'redis' => [

'cluster' => false,
'default' => ['host' => '127.0.0.1','port' => 6379,'database' => 0,
],

],
其中cluster选项表示是否在多个Redis节点间进行分片,这里我们本地测试只有一个节点故将其设置为false。

default选项表示默认Redis主机连接,这里Redis和Web服务器共用一台主机,所以host为127.0.0.1,Redis默认端口是6379。

此外,default选项还支持更多连接参数(如果需要的话):

参数 ||意义 ||默认值
host |服务器IP地址/主机名称 |127.0.0.1
port |Redis服务器监听的端口号 |6379
password |如果服务器需要认证密码 |不使用密码
database|连接时选择的数据库索引|没有设置索引
timeout|连接到Redis服务器超时时间 |5秒
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);    //直接读取cachereturn $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 方法的闭包将会被运行,而且闭包的运行结果将会被存放在缓存中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_771199.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

题目27:天下咨讯网站***测试

题目27:天下咨讯网站***测试。你作为一名出色安全人员,游走在各个看似安全的网站,你却可以一眼看透它的真相。某天,你发现一个新闻网站。它直接采用了CMS模块建立的。经过测试,你发现它的会员功能哪里有些猫腻。所以&a…

从域名到网站,快速创建全新社区站点 - phpwind一键部署操作文档

关于phpwind一键部署服务,请查阅PW官网:http://www.phpwind.com/setup.html 选择一键部署镜像版本,立即开始使用: PW建站系统(Centos 64位) ———— 本篇主要介绍从域名到网站,新用户如何能够…

eyoucms网站基本信息设置

后台 — 网站首页 — 页面设置,即可设置。 网站基本信息是贯穿显示在整个网站上的,且其他SEO相关设置也会引用到,主要包含网站名称、关键词和网站描述等设置。 关闭网站:默认选择“否”,如果维护,备案或其他…

python实现自动监测目标网站的爬取速度_以及整体网络环境分析

python实现自动监测目标网站的爬取速度_以及整体网络环境分析 实现的功能:在win7下,分别通过使用和不使用代理获取网页速度,以及使用系统自带的ping,tracert命令分析整个网络的环境,分析爬虫在速度上的瓶颈&#xff0…

selenium+python实现1688网站验证码图片的截取

seleniumpython实现1688网站验证码图片的截取 1. 背景 在1688网站爬取数据时,如果访问过于频繁,无论用户是否已经登录,就会弹出如下所示的验证码登录框。 一般的验证码是类似于如下的元素(通过链接单独加载进页面&#xff0c…

使用百度统计工具对php网站进行事件埋点追踪

使用百度统计工具对php网站进行事件埋点追踪 1.背景 在用户浏览我们的网页时,我们都希望知道用户从哪个途径找到并浏览我们的网站,然后在网站上都做了些什么。如果有了这些信息,我们就可以改善用户在网站上的体验,提高用户留存率…

如何利用网站的分布式部署(多IP)提高爬虫爬取速度?

如何利用网站的分布式部署(多IP)提高爬虫爬取速度? 1. 背景知识 做过网站部署的都清楚,当网站的规模和用户量巨大时,会采用virtual host和服务器的分布式部署方式,在全国多地部署服务器,进行用…

8个高质量免抠素材网站

8个高质量免抠素材网站 标签:免扣素材ppt 素材1.PngImg 网址: http://pngimg.com/ PngImg 网站是一个收录了近5万个免费的网页设计图片素材的站点,拥有详细的分类,如蔬菜、动物、水果、花卉、服装、食品、家具等等,所有的素材资源…

大型网站技术架构

初始搭建 最开始,就是各种框架一搭,然后扔到 Tomcat 容器中跑,这时候我们的文件、数据库、应用都在一个服务器上。服务分离 随着系统的上线,用户量也会逐步上升,很快一台服务器已经满足不了系统的负载,这时…

关于大型网站技术演进的思考(十八)--网站静态化处理—反向代理(10)

反向代理也是一种可以帮助实现网站静态化的重要技术,今天我就来讲讲反向代理这个主题。那么首先我们要了解下什么是反向代理。和反向代理相对应的是正向代理,正向代理也就是我们常说的代理服务,正向代理是非常常见的,例如在某些公…

安装PIWIK网站监控

1.piwik介绍 Piwik是一个PHP和MySQL的开放源代码的Web统计软件,它给你一些关于你的网站的实用统计报告,比如网页浏览人数,访问最多的页面,搜索引擎关键词等等。 Piwik拥有众多不同功能的插件,你可以添加新的功能或是移…

网站高并发高性能必不可少的九种核心技术

要建成一个具有高并发高可用的一个网站必不可少的九种核心技术转载于:https://blog.51cto.com/983865387/2045994

图书资源下载网站推荐

为什么80%的码农都做不了架构师?>>> Kindle 电子书下载不用愁,一页精品解您忧。网上流传着很多 Kindle 电子书资源网站汇总,但是有很多都是以讹传讹,有相当多的网站要么打不开,要么质量无法保证&#xff0…

众筹网站Kickstarter不准备上市:转型公益企业

众筹网站Kickstarter刚刚获得了“公益企业”的身份,表明该公司希望“对社会产生积极影响”。 需要强调的是,Kickstarter仍是一家盈利性企业,但该公司现在将会定期发布社会影响报告,其董事会也必须在制定决策时充分权衡公益因素。该…

大型网站技术架构(八)网站的安全架构

2019独角兽企业重金招聘Python工程师标准>>> 从互联网诞生起,安全威胁就一直伴随着网站的发展,各种Web攻击和信息泄露也从未停止。常见的攻击手段有XSS攻击、SQL注入、CSRF、Session劫持等。 1、XSS攻击 XSS攻击即跨站点脚本攻击(…

Mysql在大型网站的应用架构演变

写在最前: 本文主要描述在网站的不同的并发访问量级下,Mysql架构的演变 可扩展性 架构的可扩展性往往和并发是息息相关,没有并发的增长,也就没有必要做高可扩展性的架构,这里对可扩展性进行简单介绍一下,常用的扩展手段…

github Issues解决博客网站typecho的主题lanstar报错显示你选择的风格不存在和syntax error, unexpected ‘else‘ (T_ELSE)问题

背景 最近看到小伙伴使用网站typecho搭建自己的个人博客,所以就尝试了一下。虽然是PHP写的,但感觉还不多,对比Java的个人博客Haro,最重要的一点就是有很多的主题可以供选择。 于是乎就搭建了一波,几经选择&#xff0…

安利一些电子图书下载网站

作者:duktig 博客(文章首发):https://duktig.cn 优秀还努力。愿你付出甘之如饴,所得归于欢喜。 什么事情不仅香,还能提升自己的幸福感? 对于大多数人来说,有一点应该毋庸置疑——白嫖…

Vue3项目中 Ant Design Vue全局配置项使用及 网站标题、图标修改

1、Ant Design Vue全局配置项 Ant Design Vue官网:https://www.antdv.com/components/overview-cn antdv的全局配置一般用于 参数说明类型默认值版本autoInsertSpaceInButton设置为 false 时,移除按钮中 2 个汉字之间的空格booleantruecomponentSize设置…

大型网站技术架构(二)架构模式

2019独角兽企业重金招聘Python工程师标准>>> 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。 所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠…