redis 哈希数据类型简单操作(实现购物车案例)
2017-04-28 13:38
751 查看
这里不累赘如何安装redis和php redis扩展,主要熟悉调用redis哈希数据类型
简单方法操作如下
1:hSet
2:hGet
4:hDel
5:hGetAll
4:hExists
5:hIncrBy
简单购物车实现
简单方法操作如下
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() { } }
相关文章推荐
- redis 哈希数据类型简单操作(实现购物车案例)
- Redis简介、安装、数据类型、简单案例
- Redis中五种数据类型简单操作
- php简单的操作redis的5种数据类型
- redis数据类型设计和实现(之二)链表
- 【c语言】实现对一个8bit数据(unsigned char 类型)的指定位(例如第n位)置0或者置1操作,并保持其他位不变
- 在多台服务器上简单实现Redis的数据主从复制(3)(转载)
- 在多台服务器上简单实现Redis的数据主从复制
- Redis hash数据类型操作
- redis之常用数据类型操作
- Spring 让 LOB 数据操作变得简单易行,LOB 代表大对象数据,包括 BLOB 和 CLOB 两种类型
- redis:hash数据类型与操作
- redis 各个数据类型常用操作
- Redis有序集合数据类型操作命令
- 简单实现redis数据实时插入MySQL过程
- golang-redis之string类型简单操作
- 在多台服务器上简单实现Redis的数据主从复制
- MySQL入门1——数据类型和简单数据表操作
- 使用基于Android网络通信的OkHttp库实现Get和Post方式简单操作服务器JSON格式数据
- [java]增删改查后给出操作提示后跳转到数据列表的小问题解决[简单实现]