PDO和訊息佇列的一點個人理解

2022-03-07 02:54:44 字數 3215 閱讀 8946

看著網上林林總總的文章,都說是為了應對高併發,處理資料量超級大的一種資料容器,也可以說是利用各種方式,先把資料儲存在乙個···容器···中,然後,再慢慢從這個容器中獲取資料,實現·····非同步運算元據庫·····的方式,以便降低資料庫的壓力。

不管訊息佇列是什麼,個人姑且認為它就是一種儲存資料的···容器···,就這麼簡單明瞭,呵呵,因為本人對訊息佇列這東西研究的比較膚淺。

不過,在這裡,我還是要賣弄一下乙個個人的小實驗**,呵呵,假若下面的東西與訊息佇列相離太遠,那麼請看官可別見怪哦,因為我上面已經宣告的很清楚了,本人對這東西還是不甚了解,只不過是工作之餘賣弄一下『文采』而已,所以,假如真有誤解訊息佇列這個東西,我只能說聲,請你指正我的錯誤,讓筆者迷途知返。

先給出連線mysql資料庫配置檔案mysql.ini的內容:

[

database

]driver =mysql

host = 127.0.0.1port = 3306dbname =mysql

username =root

password = 1234

[options

]pdo::mysql_attr_init_command = set names utf8

資料表檔案queue.sql的內容:

--

訊息佇列測試

--商品表

create

table

goods(

id int unsigned primary

keyauto_increment,

goodsname

varchar(40) not

null comment '

商品名'

,price

decimal(9,2) not

null comment '**'

,category_id

tinyint unsigned not

null comment '

商品類別id',

sort

tinyint comment '

商品排序',

description

varchar(255) comment '

商品描述',

remark

varchar(255) comment '備註'

)engine innodb

default charset=

utf8;

insert

into goods values(default,'

iphone5s

',5999,1,1,'

美國入口貴重電子產品

','請多多銷售

'),(default,'

巨集基手提電腦1

',4888,3,1,'

**划算好電腦

',null),(default,'

f-30絨衣

',200,2,1,'

以純白色厚皮羽絨服

',null),(default,'

n-100鞋子

',300,4,1,'

nick品牌

',null);

下面是簡單的訊息佇列實現pdo商品入庫的**:

<?php

namespace home;

header('content-type:text/html;charset=utf-8;');

//引入pdo類

use\pdo;

use\pdostatement;

use\pdoexception;

/*簡單訊息佇列

*/class

queue

catch(pdoexception $e

) }

catch(pdoexception $e

) }

/**入列

*$data陣列

*成功返回1,失敗返回false,或者null

*/public

function _unshift($data =array

())

$sql = 'default';

foreach($data

as$k=>$v

)

//把$data轉為sql語句,新增到佇列容器contain中

$sql = 'insert into goods values('.$sql.')';

return @array_unshift(self::$container,$sql

); }

/**出列

*成功返回最後插入的資料id

*失敗返回失敗資訊

*/private

static

function

_pop()

//返回的是,最後插入的id,失敗是null

return self::$pdo->lastinsertid();

}catch(pdoexception $e

) }

//析構函式,物件**時呼叫,通過它實現自動讓容器資料入庫

public

function

__destruct()

}}

下面是同一級目錄下呼叫這個類的檔案的內容,當然,你也可以在上面那個queue類的下面呼叫_unshift方法實現訊息佇列的操作

<?php

include './queue.php';

use home\queue;//

引入命名空間的queue類

$ob = new

queue;

//訊息入列

$ob->_unshift(array('goodsname'=>'vivo手機8888','price'=>1120,'category_id'=>1,'sort'=>1,'description'=>'vivo品牌','remark'=>'好用'));

$ob->_unshift(array('goodsname'=>'小公尺手機888','price'=>1998,'category_id'=>1,'sort'=>1,'description'=>'小公尺品牌手機','remark'=>'國產好貨'));

//之所以列印出來,完成是為了看看效果,至於,有沒有實現商品入庫,你得去看看你的資料庫了,呵呵

var_dump(queue::$container);

static的一點個人理解

public class xuexi static 個人這麼理解 xuexi myxuexi new xuexi xuexi myxuexi2 new xuexi 程式執行時 當用 xuexi這個類 宣告這個 myxuexi 變數時,就會首先 載入xuexi類 在堆中 為xuexi類開闢一塊空間,在...

關於SVM的一點個人理解

網上關於svm的資料很多,但是我還是想簡單說下自己的理解,希望能為各位初學者做乙個參考 通俗的說,svm的原理就是對於n維資料,尋找乙個n 1維的超平面,將這n維資料區別開來。關於這個超平面,有個學問,如何找到這個超平面呢?就是使得離超平面比較近的點 所謂的支援向量 之間的距離最大,這樣的分類效果才...

關於SG SP, GG GP的一點個人理解

在翻譯tmmi時候,不可繞過的一些名詞就是sg sp,gg gp,具體的翻譯就是特定目標 特定實踐,通用目標 通用實踐。下面把我個人對這些詞的理解寫一下。先說sg sp.sg 乙個過程域通常是由多個子目標組成的。比如說tmmi2裡面的pa1 測試方針和策略 它包含了多個子目標。比如建立測試方針,建立...