Redis在PHP项目中的应用

一 运行redis服务端

 

出现上图的图形,就说明redis服务端开启成功,并且开启了密码功能(如果不加载配置文件,连接redis是不需要密码的,这样,会给我们的程序带来很大隐患)

密码的设置: 在redis配置文件中,搜索requirepass ,后面设置密码  比如 : requirepass G506myredis

则表示此redis服务端密码是G506myredis

 

二 在php文件中操作redis

1. 查询

根据sql语句到redis数据库中查询是否有相应的数据,如果有,则直接返回数据,如果没有,则到数据库查询数据返回给浏览器,并且将数据缓存到redis服务器

代码:

function inquiry_redis($sql)
{//实例化redis对象$redis = new Redis();//连接redis$redis->connect('localhost',6379);//分配下面的任务密码权限$redis->auth('G506myredis');$key = md5($sql);$data = $redis->get($key);//如果有data,此时应该是一个json字符串if(!$data){try{$pdo = new PDO('mysql:dbname=test;host=localhost','root','root');}catch(PDOException $e){die("pdo连接失败:".$e->getMessage());}$stmt = $pdo->prepare($sql);$stmt->execute();$data = json_encode($stmt->fetchAll(2));//将从数据库取到的数据转化为json字符串(为了存储到redis中)$redis->set($key,$data);}return json_decode($data);//返回数组格式的数据}$sql = 'select id,name,edu,city,salary from student';
var_dump(inquiry_redis($sql));

 

 

结果:

 

array (size=39)0 => object(stdClass)[2]public 'id' =>  '1' (length=1)public 'name' =>  '周更生' (length=9)public 'edu' =>  '大专' (length=6)public 'city' =>  '山东省' (length=9)public 'salary' =>  '5000.00' (length=7)1 => object(stdClass)[3]public 'id' =>  '2' (length=1)public 'name' =>  '王小平' (length=9)public 'edu' =>  '大专' (length=6)public 'city' =>  '陕西省' (length=9)public 'salary' =>  '500.00' (length=6)2 => object(stdClass)[4]public 'id' =>  '3' (length=1)public 'name' =>  '周改娟' (length=9)public 'edu' =>  '大专' (length=6)public 'city' =>  '上海市' (length=9)public 'salary' =>  '8000.00' (length=7)3 => object(stdClass)[5]public 'id' =>  '4' (length=1)public 'name' =>  '高舸' (length=6)public 'edu' =>  '高中' (length=6)public 'city' =>  '山西省' (length=9) (size=39)0 => object(stdClass)[2]public 'id' =>  '1' (length=1)public 'name' =>  '周更生' (length=9)public 'edu' =>  '大专' (length=6)public 'city' =>  '山东省' (length=9)public 'salary' =>  '5000.00' (length=7)1 => object(stdClass)[3]public 'id' =>  '2' (length=1)public 'name' =>  '王小平' (length=9)public 'edu' =>  '大专' (length=6)public 'city' =>  '陕西省' (length=9)public 'salary' =>  '500.00' (length=6)2 => object(stdClass)[4]public 'id' =>  '3' (length=1)public 'name' =>  '周改娟' (length=9)public 'edu' =>  '大专' (length=6)public 'city' =>  '上海市' (length=9)public 'salary' =>  '8000.00' (length=7)3 => object(stdClass)[5]public 'id' =>  '4' (length=1)public 'name' =>  '高舸' (length=6)public 'edu' =>  '高中' (length=6)public 'city' =>  '山西省' (length=9)

第一次,从数据库取数据,将结果返回给浏览器,并将数据缓存到redis中

 

第二次,直接从redis中取数据,返回该浏览器

 

2. 删除

传进来一个sql,我们根据sql删除redis库中对应的key的数据

function delete_redis($sql)
{//实例化redis对象$redis = new Redis();//连接redis$redis->connect('localhost',6379);//分配下面的任务密码权限$redis->auth('G506myredis');$key = md5($sql);//删除对应的缓存的sql数据$redis->del($key);}

 

 ps: 期待在这方面有丰富项目经验的phper提出更多的优化意见,谢谢

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

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

相关文章

上汽拒绝HW符合商业逻辑

不久前,上汽董事长陈虹表示“与HW合作自动驾驶是不可接受的。这就好比一家公司为我们提供整体的解决方案,如此一来,它就成了灵魂,而上汽就成了躯体。对于这样的结果,上汽是不能接受的,要把灵魂掌握在自己手…

javac compiling error ( mising package)

javac 编译java源文件时,提示 package does not exist 的错误 Test.java import java.security.MessageDigest; import org.apache.commons.codec.binary.Hex;public class Test{public static void main(String args[]){boolean isAlarmed true;boolean aa isAla…

使用ffmpeg录音

官方教程:http://ffmpeg.org/ffmpeg.html 录音方法: 开始找到了这个方法,但是不行呀,好像是没有这个oss吧。 oss 是linux 下的声音相关的东西,与alsa 一样,不过oss 是商业的, 而/dev/dsp 是oss …

Mysql慢查询日志的使用 和 Mysql的优化

一、生成实验数据 原理:sql 蠕虫复制(这种生成数据方式同样适用于数据表中有主键的情况)。 insert into comic (name,pen_name,cover) select name,pen_name,cover from comic 二、慢查询日志设置 当语句执行时间较长时,通过日…

thinkphp出现Call to undefined function Think\C() in ... online 313

造成这个问题的原因很多,在这里我只说明我自己遇到之后解决的办法 我将functions.php改成了function.php之后,修改了一些其他无关紧要的东西出现了这个问题,来回排查,各种尝试,最后,将function.php改回functions.php,可以正常运行

WPF效果第一百九十九篇之Gamma曲线

前面效果中分享了模块对比;今天大周末那就再来分享一下最近实现的效果;基于YX^n公式根据不同的系数绘制Gamma曲线效果如下图:1、曲线的话,咱就用最简单的方式绘制一堆点:PathFigure pathFigure new PathFigure(){StartPoint new Point(0, count),};for(double x 0; x < 1…

深入理解Spring Boot数据源与连接池原理

​ Create by ysterfoxmail.com 2018-8-2一&#xff1a;开始 在使用Spring Boot数据源之前&#xff0c;我们一般会导入相关依赖。其中数据源核心依赖就是spring‐boot‐starter‐jdbc 如下 <dependency><groupId>org.springframework.boot</groupId> …

Dapr 集成 Open Policy Agent 实现 接口的访问控制

大型项目中基本都包含有复杂的访问控制策略&#xff0c;特别是在一些多租户场景中&#xff0c;例如Kubernetes中就支持RBAC&#xff0c;ABAC等多种授权类型。Dapr 的 中间件 Open Policy Agent 将Rego/OPA策略应用到传入的Dapr HTTP请求中。Open Policy AgentOpen Policy Agent…

【招聘(大连)】北森云计算 .NET 专场招聘

为了更好的实现战略布局&#xff0c;逐步形成以三个产品研发中心&#xff08;北京、成都、大连&#xff09;为主&#xff0c;青岛和南京为辅的产品研发团队配置。北森云第三研发中心&#xff08;大连&#xff09;正式成立&#xff0c;目前大连的人选招聘正式开启&#xff0c;欢…

C#多线程编程-必知必会

“发现问题的能力&#xff0c;运用技术解决问题的能力&#xff0c;是一个技术人成长的关键”图片故事&#xff1a;洋姜的花&#xff0c;拍摄于2022年7月23日&#xff0c;地点&#xff1a;北京奥林匹克森林公园 &#xff0c;摄影师&#xff1a;刘先生概要&#xff1a;使用C#发起…

『中级篇』Dockerfile详解(17)

一般的&#xff0c;Dockerfile 分为四部分&#xff1a;基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。 ####官网学习 https://docs.docker.com/engine/reference/builder/#usage ####FROM 必须为第一个命令&#xff0c;指定基础镜像 FROM <image> FROM &…

KestrelServer详解[1]:注册监听终结点(Endpoint)

具有跨平台能力的KestrelServer是最重要的服务器类型。针对KestrelServer的设置均体现在KestrelServerOptions配置选项上&#xff0c;注册的终结点是它承载的最重要的配置选项。这里所谓的终结点&#xff08;Endpoint&#xff09;与“路由”介绍的终结点不是一回事&#xff0c;…

快来加入阿里云大学【云学院】班级助理招募—机会稍纵即逝,错过遥遥无期!...

2019独角兽企业重金招聘Python工程师标准>>> 如果你对云计算、大数据、云安全、人工智能领域感兴趣~ 如果你想从事与此相关的工作~~ 如果你又喜欢边交流边学习的方式~ 那么&#xff0c;加入我们吧&#xff01; 我们将为你提供一个广阔的平台&#xff0c;让你接触到云…

深入理解ajax系列第五篇——进度事件

前面的话 一般地&#xff0c;使用readystatechange事件探测HTTP请求的完成。XHR2规范草案定义了进度事件Progress Events规范&#xff0c;XMLHttpRequest对象在请求的不同阶段触发不同类型的事件&#xff0c;所以它不再需要检査readyState属性。这个草案定义了与客户端服务器通…

对象(poco)深度克隆

提供深度克隆对象功能,基于编译表达式实现&#xff0c;性能与原生代码几无差别&#xff0c;远超 json/binary 序列化实现。1. 简单示例class Person {public int Id { get; set; }public string Name { get; set; }public int Age { get; set; }public DateTime Birth { get; s…

Linux之ACL权限控制

ACL权限控制主要目的是提供传统的owner,group,other的read,wirte,execute权限之外的具体权限设置&#xff0c;可以针对单一用户或组来设置特定的权限 设置ACL权限&#xff1a;setfacl查看ACL权限&#xff1a;getfacl 比如&#xff1a;某一目录权限为 drwx------ 2 root root 40…

WIX、Squarespace、WordPress 三者的优劣分别是什么?

层出不穷的智能建站&#xff0c;模板建站&#xff0c;源码建站&#xff0c;云建站&#xff0c;仿站&#xff0c;各种建站概念都抛洒于红海之中。到底什么样的网站适合自己&#xff0c;什么样的网站值得我们去消费&#xff0c;什么样的网站能长久&#xff0c;是个非常值得思考的…

GitHub 使用

Git 是由 Linux 之父 Linus Tovalds 为了更好的管理 linux 内核开发而创立的分布是版本控制/软件管理配置软件. 简单来说, Git 管理你的 代码的历史记录 的工具. 首先注册账户 (已经完成, moveofgod) 然后, 下载一个 GitHub Desktop(mac), msisgit 客户端 (可以用命令行实现, …

LinkedHashMap 与 HashMap区别

2019独角兽企业重金招聘Python工程师标准>>> LinkedHashMap 与 HashMap区别 &#xff08;非原创&#xff09; HashMap,LinkedHashMap,TreeMap都属于Map Map 主要用于存储键(key)值(value)对&#xff0c;根据键得到值&#xff0c;因此键不允许键重复,但允许值重复。 …

C# 11 中的 file local type

C# 11 中的 file local typeIntro在之前的版本中&#xff0c;我们想要一个类型只在当前的类型中生效&#xff0c;通常我们会在一个类的内部声明一个 private 的类型以此来控制这个类型的访问权限&#xff0c;在 C# 11 中引入了一个 file local type&#xff0c;仅在声明类型的这…