這裡不累贅如何安裝redis和php redis擴展,主要熟悉呼叫redis雜湊資料型別
如圖
##簡單方法操作如下
#5:hIncrBy
#useThink\Controller;
namespaceHome\Controller;#useThink\Controller;
useOrg\Net\Http;
#useThink\
Cache\Driver\Redis;
classIndexController
extendsController
null;
public functionconstruct()
{
$this->redis_obj=
newRedis();
}
/**
*@
file:判斷購物車是否存在這減商品
*@param$user_id
public functiongoods_is_exist($user_id,$goods_id)
{
$ r1=$this->redis_obj->hExists($user_id,$goods_id);
return####/ **######*@file:增加購物車商品######*######*/######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'));
}
}
}
}
##//減少購物車的商品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) {//購物車商品只有一件的時候減少到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=
explodearray_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'));
}
##}#//購物車清單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'));
}
}
//設定一個商品的數量
public functionedit_goods_num()
{
##}##}
#以上是哈希資料型別簡單操作(實作購物車案例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!