好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > PHP+Redis開發的書簽案例實戰詳解

PHP+Redis開發的書簽案例實戰詳解

熱門標簽:百度地圖標注偏差 百度地圖怎樣標注圖標 咸寧銷售電銷機器人系統 開發地圖標注類網站 外呼系統能給企業帶來哪些好處 400電話蘭州申請請 廣東廣州在怎么申請400電話 余姚電話機器人 電銷機器人問門薩維品牌my

本文實例講述了PHP+Redis開發的書簽案例。分享給大家供大家參考,具體如下:

redis是一個key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set 有序集合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現了master-slave(主從)同步。

場景

在項目開發過程中,相信大家都遇到過這樣的場景——一個書籍表,一個書籍標簽表,然后一本書可以有多個標簽,這個場景就和CSDN發布文章時的文章標簽差不多。

問題:如果我要查詢多個標簽共同的書籍,那么必須將表關聯查詢,這樣影響效率。我們可以使用redis來幫忙。

案例思路

在添加書籍的時候,需要添加書籍和標簽,將書籍保存到MySQL中,將標簽保存到redis的set集合中,將每個標簽看成一個set集合,然后每個標簽保存的是書籍的id信息。如果需要查詢多個標簽共同的書籍,只需要將多個集合進行交集操作。

結果圖

項目結構圖

index.html文件

在這個頁面是用來添加書籍的。

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
head>
  meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
  title>Document/title>
/head>
body>
  form action="add.php" method="post">
    p>請輸入書名:input type="text" name="title" />/p>
    p>請輸入標簽:input type="text" name="tags" />/p>
    p>input type="submit" value="提交" />/p>
  /form>
/body>
/html>

add.php文件

這個文件主要處理添加書籍。

首先生成生成自增長的id,用來給書籍的id使用,然后將標簽信息添加到redis中,最后使用pdo將書籍信息添加到數據庫中。

?php
$redis = new Redis();
$redis->connect('localhost',6379);
//生成自增長的id
$bid = $redis->incr('bid');
//將標簽信息添加到redis中
$tags = explode(',',trim($_POST['tags'],','));
foreach($tags as $t){
  $redis->sAdd($t,$bid);
}
//使用pdo將書籍信息添加到數據庫中
$dsn = 'mysql:host=localhost;dbname=test';
$pdo = new PDO($dsn,'root','1234');
$pdo->query('set names utf8');
$sql = 'insert into book values(?,?)';
$st = $pdo->prepare($sql);
$line = $st->execute([$bid,$_POST['title']]);
if($line != 0){
  echo '添加書籍成功';
}

search.php文件

這個文件主要處理搜索界面,也就是上面效果圖的界面。首先創建一個redis對象并進行連接,然后獲取地址欄的標簽,然后將標簽轉換為數組,計算出用戶輸入標簽的數量,因為每個標簽都對應redis中的集合,所以給這幾個集合取交集就可以了。

?php
$redis = new Redis();
$redis->connect('localhost',6379);
$tags = explode(',',trim($_GET['tags'],','));
$len = count($tags);
if($len == 1){
  var_dump($redis->sMembers($tags[0]));
}else if($len == 2){
  var_dump($redis->sInter($tags[0],$tags[1]));
}else if($len == 3){
  var_dump($redis->sInter($tags[0],$tags[1],$tags[2]));
}

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php+redis數據庫程序設計技巧總結》、《php面向對象程序設計入門教程》、《PHP基本語法入門教程》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • PHP+redis實現微博的推模型案例分析
  • PHP使用redis消息隊列發布微博的方法示例
  • PHP基于Redis消息隊列實現發布微博的方法
  • php結合redis高并發下發帖、發微博的實現方法
  • PHP+redis實現的購物車單例類示例
  • php結合redis實現高并發下的搶購、秒殺功能的實例
  • PHP實現操作redis的封裝類完整實例
  • 項目中應用Redis+Php的場景
  • PHP的Laravel框架結合MySQL與Redis數據庫的使用部署
  • php+redis實現商城秒殺功能
  • php+redis實現注冊、刪除、編輯、分頁、登錄、關注等功能示例
  • PHP+redis實現微博的拉模型案例詳解

標簽:麗江 衡陽 臨沂 重慶 銅陵 鷹潭 巴彥淖爾 十堰

巨人網絡通訊聲明:本文標題《PHP+Redis開發的書簽案例實戰詳解》,本文關鍵詞  PHP+Redis,開發,的,書簽,案例,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP+Redis開發的書簽案例實戰詳解》相關的同類信息!
  • 本頁收集關于PHP+Redis開發的書簽案例實戰詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 久久久久免费精品视频| 国产男女爽爽爽爽爽爽视频| 国产99视频精品免费视频免里| 日本高新1区2区3区| 日本人做爰毛片免费播| 中国妇被黑人XXX猛交| 羞羞在线无限看免费漫画| 波多野结衣办公室丝袜大片| 若妻の秘めた肉欲夫より| 日韩欧美综合视频| 男生操女生逼逼| cytherea喷水抽筋| 亚洲 www 色| 继夫啊蹂躏调教np| chinese国产shemale| 全彩成人18??H漫画入口| 国产精品第100页| 94爱奇艺入口在线观看| 一级一片免费看| 欧美人与性囗牲恔配| 使劲插视频| 99日影院在线播放| 粗大的内捧猛烈进出A片| 上司人妻被下属侵犯知乎| 欧美日韩激情在线一区| 日韩高清精品免费观看| 性一交一乱一A片熟女| 蕾丝污视频| 四虎永久在线精品波多野结衣| 国产自产精品| 99精品众筹模特在线视频| 亚洲无圣光一区二区| 阿离被扒开双腿疯狂输出| 亚洲午夜毛片一级久久久精品| 巨大热杵在腿间进进出出视频| 精品欧美AV无码波多野吉衣蜜臀 | 99久久婷婷国产综合精品青桔| 嗯!啊!使劲用力在线观看| xxxx18动漫| 黄色视屏日本| 帮双胞胎开嫩苞|