欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP+Redis開發(fā)的書簽案例實戰(zhàn)詳解

 更新時間:2019年07月09日 11:47:58   作者:webbc  
這篇文章主要介紹了PHP+Redis開發(fā)的書簽案例,結(jié)合實例形式詳細(xì)分析了php結(jié)合redis開發(fā)書簽功能的具體步驟及相關(guān)操作技巧,需要的朋友可以參考下

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

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

場景

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

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

案例思路

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

結(jié)果圖

項目結(jié)構(gòu)圖

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>請輸入標(biāo)簽:<input type="text" name="tags" /></p>
    <p><input type="submit" value="提交" /></p>
  </form>
</body>
</html>

add.php文件

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

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

<?php
$redis = new Redis();
$redis->connect('localhost',6379);
//生成自增長的id
$bid = $redis->incr('bid');
//將標(biāo)簽信息添加到redis中
$tags = explode(',',trim($_POST['tags'],','));
foreach($tags as $t){
  $redis->sAdd($t,$bid);
}
//使用pdo將書籍信息添加到數(shù)據(jù)庫中
$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文件

這個文件主要處理搜索界面,也就是上面效果圖的界面。首先創(chuàng)建一個redis對象并進行連接,然后獲取地址欄的標(biāo)簽,然后將標(biāo)簽轉(zhuǎn)換為數(shù)組,計算出用戶輸入標(biāo)簽的數(shù)量,因為每個標(biāo)簽都對應(yīng)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]));
}

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php+redis數(shù)據(jù)庫程序設(shè)計技巧總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《PHP基本語法入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總

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

相關(guān)文章

  • PHP使用適合閱讀的格式顯示文件大小的方法

    PHP使用適合閱讀的格式顯示文件大小的方法

    這篇文章主要介紹了PHP使用適合閱讀的格式顯示文件大小的方法,實例分析了php實現(xiàn)數(shù)據(jù)轉(zhuǎn)換的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • 一文徹底搞懂php的后期靜態(tài)綁定舉例講解

    一文徹底搞懂php的后期靜態(tài)綁定舉例講解

    這篇文章主要來帶大家徹底搞懂php的后期靜態(tài)綁定的舉例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • PHP中的cookie

    PHP中的cookie

    PHP中的cookie...
    2006-11-11
  • FirePHP 推薦一款PHP調(diào)試工具

    FirePHP 推薦一款PHP調(diào)試工具

    PHP調(diào)試有很多中方法。今天給大家推薦的是 FirePHP 這個工具,是基于firefox的一個組件。Firephp組件安裝地址。使用之前需要先安裝下這個組件。完了還需要down一個FirePHP的包。
    2011-04-04
  • phpstudy的安裝及ThinkPHP框架的搭建圖文講解

    phpstudy的安裝及ThinkPHP框架的搭建圖文講解

    這篇文章主要介紹了phpstudy的安裝及ThinkPHP框架的搭建圖文講解,步驟描述的很清楚,有不會使用phpstudy或者ThinkPHP框架搭建的同學(xué)可以深入研究下
    2021-01-01
  • php禁止某ip或ip地址段訪問的方法

    php禁止某ip或ip地址段訪問的方法

    這篇文章主要介紹了php禁止某ip或ip地址段訪問的方法,涉及服務(wù)器變量$_SERVER、文件及字符串的操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • phpMyAdmin出現(xiàn)無法載入 mcrypt 擴展,請檢查PHP配置的解決方法

    phpMyAdmin出現(xiàn)無法載入 mcrypt 擴展,請檢查PHP配置的解決方法

    出現(xiàn)以下幾種情況后可能會造成運行phpmyadmin程序提示 無法載入 mcrypt 擴展,請檢查 PHP 配置 的 錯誤提示
    2012-03-03
  • 如何用PHP實現(xiàn)多線程編程

    如何用PHP實現(xiàn)多線程編程

    原以為 PHP 普遍都是單線程模型,并不適合多線程領(lǐng)域,發(fā)現(xiàn)PHP的多線程也頗有可取之處,用來解決某些問題竟然非常適合。本文對比多進程介紹了下多線程的優(yōu)勢和適用場景,提出了一種巧用方案,并使用PHP代碼實現(xiàn)了多線程的常見用法。
    2021-05-05
  • PHP實現(xiàn)的貪婪算法實例

    PHP實現(xiàn)的貪婪算法實例

    這篇文章主要介紹了PHP實現(xiàn)的貪婪算法,簡單說明了貪婪算法的概念、原理并結(jié)合實例形式分析了php實現(xiàn)貪婪算法的相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10
  • 如何提高PHP速度

    如何提高PHP速度

    如何提高PHP速度...
    2007-02-02

最新評論