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,一经查实,立即删除!

相关文章

Linux关机、重启命令

关机shutdown -h 0 #<O秒后关机shutdown -h now #<现在关机shutdown -h 10 #<10分钟后关机shutdown -h 23:20 #<23&#xff1a;20分关机shutdown -c #<取消shutdown关机命令init 0 #<立马关机&#xff08;切换运行级别为0&#xff0c;推荐使用&#xff09;ha…

Python 模块之 string.py

用法 字符串常量&#xff1a; import string print(string.ascii_lowercase) print(string.ascii_uppercase) print(string.ascii_letters) print(string.digits) print(string.hexdigits) print(string.octdigits) print(string.punctuation) print(string.printable)结果 abc…

md5和password_hash孰好孰坏

md5自不必说,想必所有phper都用过,但另一个加密函数不知道你见过没有 他就是password_hash(); 加密方式更全面.使用起来也比md5salt这种方式要简洁很多,最主要的是难破解,因为它每时每刻都在变动 它的使用方式大致是这样 1. 用户注册时提交过来密码,我们对用户密码进行加密…

Logstash 命令行参数

Logstash 提供了一个 shell 脚本叫 logstash 方便快速运行。它支持以下参数&#xff1a; -e意即执行。我们在 “Hello World” 的时候已经用过这个参数了。事实上你可以不写任何具体配置&#xff0c;直接运行 bin/logstash -e ” 达到相同效果。这个参数的默认值是下面这样&…

上汽拒绝HW符合商业逻辑

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

javac compiling error ( mising package)

javac 编译java源文件时&#xff0c;提示 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录音

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

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

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

Oracle 12C CDB、PDB常用管理命令

--查看PDB信息&#xff08;在CDB模式下&#xff09; show pdbs --查看所有pdb select name,open_mode from v$pdbs; --v$pdbs为PDB信息视图 select con_id, dbid, guid, name , open_mode from v$pdbs; --切换容器 alter session set containerorcl1 --切换到PDBorcl1容器…

指定时间的月初和月末一天的写法

DateTime dt Convert.ToDateTime("2017-2");DateTime FirstDay new DateTime(dt.Year, dt.Month, 1);//本月初1號DateTime LastDay new DateTime(dt.AddMonths(1).Year, dt.AddMonths(1).Month, 1).AddDays(-1);//下月初1號減一天本月底 转载于:https://www.cnblo…

mysql数据表设计要点以及快门

一个sql表的设计首先要考虑的是字段 然后去考虑这个字段应该具有哪些特性, 最后,考虑哪些字段经常用于查询,设置为索引 下面是一个比较简单的例子,大概说明了怎么样去构造sql语句创建一个sql表 create table user_message( id int UNSIGNED not null auto_increment COMMEN…

分享实录|区块链技术与智能合约入门(开发实例)

1 什么是区块链 1.1白话讲解区块链 现在区块链特别火&#xff0c;可能大家都听说过区块链&#xff0c;听说过比特币&#xff0c;那到底什么是区块链&#xff1f; 前几天和一个朋友撸串&#xff0c;我给他安利区块链和比特币以及一些数字货币的知识&#xff0c;这个朋友也是一个…

大型网站技术架构:核心原理与案例分析笔记

1.大型网站软件系统的特点&#xff1a; 高并发&#xff0c;大流量  高可用 海量数据  用户分布广泛&#xff0c;网络情况复杂  安全环境恶劣  需求快速变更&#xff0c;发布频繁  渐进式发展  2.大型网站演变架构 1)初步应用&#xff1a;数据&#xff08;数据…

1777:文件结构“图”

1777:文件结构“图” 查看提交统计提问总时间限制: 1000ms内存限制: 65536kB描述在计算机上看到文件系统的结构通常很有用。Microsoft Windows上面的"explorer"程序就是这样的一个例子。但是在有图形界面之前&#xff0c;没有图形化的表示方法的&#xff0c;那时候最…

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

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

Oracle数据库IP访问限制(IP白名单黑名单)

1、编辑sqlnet.ora内容为&#xff1a;#允许访问的IP&#xff08;白名单&#xff09;TCP.INVITED_NODES(127.0.0.1,192.168.56.109,ip2,ip3,..,..本地IP..)若使用白名单&#xff0c;必须有本地IP&#xff0c;否则监听会起不来#不允许访问的IP&#xff08;黑名单&#xff09;#TCP…

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

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

图片序列化和反序列化成图片文件(代码)

// // ViewController.m // 图片序列化和反序列化 // // Created by Qlinchao on 17/3/14. // Copyright © 2017年 QLC. All rights reserved. //#import "ViewController.h"interface ViewController () property (weak, nonatomic) IBOutlet UIImageView …

windows 下 MyEclipse 逆向工程生成hiberate 对应配置文件以及 javaBean。

步骤1&#xff1a; 右边工具栏 -> 右击你的项目 -> 选中 MyEclipse -> Project Facets -> install Hibernate Facet -> 选择对应的版本&#xff08;以及一些你想要的配置&#xff09; 步骤2&#xff1a; 导航栏 -> window -》 show View -> Other 。 然…

php加解密

一 对称加密 1.mycyrpt的对称加密: /*** param $key //数据加密密钥 由自己定义,长度有限制 string* param $string //需要进行加解密的字符串 string* param $decrypt //加密还是解密 (最简单的,0代表加密,1代表解密)* return string*/ function encryptDecrypt($key, $st…