redis 哈希數(shù)據(jù)類型簡(jiǎn)單操作(實(shí)現(xiàn)購(gòu)物車案例)

這里不累贅如何安裝redis和php ?redis擴(kuò)展漂羊,主要熟悉調(diào)用redis哈希數(shù)據(jù)類型

如圖

簡(jiǎn)單方法操作如下

1:hSet?

2:hGet


4:hDel


5:hGetAll


4:hExists


5:hIncrBy


簡(jiǎn)單購(gòu)物車實(shí)現(xiàn)







namespaceHome\Controller;

useThink\Controller;

useOrg\Net\Http;

useThink\Cache\Driver\Redis;

classIndexControllerextendsController

{

private$redis_obj=null;

public function__construct()

{

$this->redis_obj=newRedis();

}

/**

*@file:判斷購(gòu)物車是否存在這減商品

*@param$user_id

*@param$goods_id

*/

public functiongoods_is_exist($user_id,$goods_id)

{

$r1=$this->redis_obj->hExists($user_id,$goods_id);

return$r1;

}

/**

*@file:增加購(gòu)物車商品

*

*/

public functionadd_goods()

{

$user_id= intval($_POST['user_id']) ? intval($_POST['user_id']) :0;

$goods_id= intval($_POST['goods_id']) ? intval($_POST['goods_id']) :0;

$exist=$this->goods_is_exist($user_id,$goods_id);

if(!empty($user_id) &&$goods_id) {

//不存在 增加商品

if(!$exist) {

$add_return=$this->redis_obj->hSet($user_id,$goods_id,1);

if($add_return) {

$this->ajaxReturn(array('code'=>0,'msg'=>'success'));

}else{

$this->ajaxReturn(array('code'=>1,'msg'=>'error'));

}

}elseif($exist) {

//存在的商品增加1

$add_exist_result=$this->redis_obj->hIncrBy($user_id,$goods_id,1);

if($add_exist_result) {

$this->ajaxReturn(array('code'=>0,'msg'=>'success','1'=>$add_exist_result));

}else{

$this->ajaxReturn(array('code'=>1,'msg'=>'error'));

}

}

}

}

//減少購(gòu)物車的商品

public functionreduce_goods()

{

$user_id= intval($_POST['user_id']) ? intval($_POST['user_id']) :0;

$goods_id= intval($_POST['goods_id']) ? intval($_POST['goods_id']) :0;

if(!empty($user_id) &&$goods_id) {

$exist=$this->goods_is_exist($user_id,$goods_id);

//不存在

if(!$exist) {

$this->ajaxReturn(array('code'=>1,'msg'=>'goods is not exist '));

}elseif($exist) {

$val=$this->redis_obj->hGet($user_id,$goods_id);

if($val==1) {//購(gòu)物車商品只有一件的時(shí)候 減少到0就是刪除

$del_result=$this->redis_obj->hDel($user_id,$goods_id);

if($del_result==1) {

$this->ajaxReturn(array('code'=>0,'msg'=>'success','num'=>0));

}

}elseif($val>1) {

$new_value=$this->redis_obj->hIncrBy($user_id,$goods_id,-1);

if($new_value>0) {

$this->ajaxReturn(array('code'=>0,'msg'=>'success','num'=>$new_value));

}else{

$this->ajaxReturn(array('code'=>1,'msg'=>'error'));

}

}

}

}else{

$this->ajaxReturn(array('code'=>1,'msg'=>'param is empty'));

}

}

//移除商品

public functionrm_goods()

{

$user_id= intval($_POST['user_id']) ? intval($_POST['user_id']) :0;

$goods_id= intval($_POST['goods_id']) ? intval($_POST['goods_id']) :0;

if(!empty($user_id) && !empty($goods_id)) {

$arr= explode(',',$goods_id);

array_unshift($arr,$user_id);

$rm_result= call_user_func_array(array($this->redis_obj,"hDel"),$arr);

if($rm_result>=0) {

$this->ajaxReturn(array('code'=>0,'msg'=>'remove success'));

}

}else{

$this->ajaxReturn(array('code'=>1,'msg'=>'param is empty'));

}

}

//購(gòu)物車列表

public functioncart_list()

{

$user_id= intval($_POST['user_id']) ? intval($_POST['user_id']) :0;

if(!empty($user_id)) {

$goods_list=$this->redis_obj->hGetAll($user_id);

$this->ajaxReturn(array('code'=>0,'list'=>$goods_list));

}else{

$this->ajaxReturn(array('code'=>1,'msg'=>'param is empty'));

}

}

//設(shè)置一個(gè)商品的數(shù)量

public functionedit_goods_num()

{

}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末季俩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌卷胯,老刑警劉巖邓线,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異毙沾,居然都是意外死亡骗卜,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門左胞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)寇仓,“玉大人,你說(shuō)我怎么就攤上這事烤宙》俅蹋” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵门烂,是天一觀的道長(zhǎng)乳愉。 經(jīng)常有香客問(wèn)我,道長(zhǎng)屯远,這世上最難降的妖魔是什么蔓姚? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮慨丐,結(jié)果婚禮上坡脐,老公的妹妹穿的比我還像新娘。我一直安慰自己房揭,他們只是感情好备闲,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著捅暴,像睡著了一般恬砂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蓬痒,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天泻骤,我揣著相機(jī)與錄音,去河邊找鬼。 笑死狱掂,一個(gè)胖子當(dāng)著我的面吹牛演痒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播趋惨,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼鸟顺,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了器虾?” 一聲冷哼從身側(cè)響起诊沪,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎曾撤,沒(méi)想到半個(gè)月后端姚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡挤悉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年渐裸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片装悲。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡昏鹃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出诀诊,到底是詐尸還是另有隱情洞渤,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布属瓣,位于F島的核電站载迄,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏抡蛙。R本人自食惡果不足惜护昧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望粗截。 院中可真熱鬧惋耙,春花似錦、人聲如沸熊昌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)婿屹。三九已至灭美,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間选泻,已是汗流浹背冲粤。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留页眯,地道東北人梯捕。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像窝撵,于是被迫代替她去往敵國(guó)和親傀顾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容