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.pswp.cn/news/282602.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282602.shtml
英文地址,請注明出處:http://en.pswp.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…