日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

Redis在PHP项目中的应用

發(fā)布時(shí)間:2023/12/4 php 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis在PHP项目中的应用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一 運(yùn)行redis服務(wù)端

?

出現(xiàn)上圖的圖形,就說明redis服務(wù)端開啟成功,并且開啟了密碼功能(如果不加載配置文件,連接redis是不需要密碼的,這樣,會(huì)給我們的程序帶來很大隱患)

密碼的設(shè)置: 在redis配置文件中,搜索requirepass ,后面設(shè)置密碼 ?比如 : requirepass G506myredis

則表示此redis服務(wù)端密碼是G506myredis

?

二 在php文件中操作redis

1. 查詢

根據(jù)sql語句到redis數(shù)據(jù)庫中查詢是否有相應(yīng)的數(shù)據(jù),如果有,則直接返回?cái)?shù)據(jù),如果沒有,則到數(shù)據(jù)庫查詢數(shù)據(jù)返回給瀏覽器,并且將數(shù)據(jù)緩存到redis服務(wù)器

代碼:

function inquiry_redis($sql) {//實(shí)例化redis對象$redis = new Redis();//連接redis$redis->connect('localhost',6379);//分配下面的任務(wù)密碼權(quán)限$redis->auth('G506myredis');$key = md5($sql);$data = $redis->get($key);//如果有data,此時(shí)應(yīng)該是一個(gè)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));//將從數(shù)據(jù)庫取到的數(shù)據(jù)轉(zhuǎn)化為json字符串(為了存儲(chǔ)到redis中)$redis->set($key,$data);}return json_decode($data);//返回?cái)?shù)組格式的數(shù)據(jù)}$sql = 'select id,name,edu,city,salary from student'; var_dump(inquiry_redis($sql));

?

?

結(jié)果:

?

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)

第一次,從數(shù)據(jù)庫取數(shù)據(jù),將結(jié)果返回給瀏覽器,并將數(shù)據(jù)緩存到redis中

?

第二次,直接從redis中取數(shù)據(jù),返回該瀏覽器

?

2. 刪除

傳進(jìn)來一個(gè)sql,我們根據(jù)sql刪除redis庫中對應(yīng)的key的數(shù)據(jù)

function delete_redis($sql) {//實(shí)例化redis對象$redis = new Redis();//連接redis$redis->connect('localhost',6379);//分配下面的任務(wù)密碼權(quán)限$redis->auth('G506myredis');$key = md5($sql);//刪除對應(yīng)的緩存的sql數(shù)據(jù)$redis->del($key);}

?

?ps: 期待在這方面有豐富項(xiàng)目經(jīng)驗(yàn)的phper提出更多的優(yōu)化意見,謝謝

總結(jié)

以上是生活随笔為你收集整理的Redis在PHP项目中的应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。