aksir

这里不累赘如何安装redis和php  redis扩展,主要熟悉调用redis哈希数据类型

简单方法操作如下

1:hSet 

2:hGet

4:hDel

5:hGetAll

4:hExists

5:hIncrBy

简单购物车实现

 

 

 

 

 

namespaceHome\Controller;
useThink\Controller;
useOrg\Net\Http;
useThink\Cache\Driver\Redis;
classIndexControllerextendsController
{
private$redis_obj=null;
public function__construct()
{
$this->redis_obj=newRedis();
}

/**
*@file:判断购物车是否存在这减商品
*@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:增加购物车商品 * */ 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= 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\')); } } //购物车列表 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 function edit_goods_num()   {   } }

分类:

技术点:

相关文章:

  • 2021-08-22
  • 2018-08-25
  • 2021-12-30
  • 2021-05-18
  • 2021-08-29
  • 2021-12-08
  • 2021-06-06
  • 2021-05-21
猜你喜欢
  • 2021-07-02
  • 2021-12-15
  • 2021-11-13
  • 2022-12-23
  • 2021-08-29
  • 2021-12-04
相关资源
相似解决方案