栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

redis 哈希数据类型简单操作(实现购物车案例)

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

redis 哈希数据类型简单操作(实现购物车案例)

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

如图

简单方法操作如下

1:hSet 

2:hGet


4:hDel


5:hGetAll


4:hExists


5:hIncrBy


简单购物车实现







namespaceHomeController;

useThinkController;

useOrgNetHttp;

useThinkCacheDriverRedis;

classIndexControllerextendsController

{

private$redis_obj=null;

public function__construct()

{

$this->redis_obj=newRedis();

}

public functiongoods_is_exist($user_id,$goods_id)

{

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

return$r1;

}

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 functionedit_goods_num()

{

}

}



作者:MacLin
链接:https://www.jianshu.com/p/c5d77c3b7cce

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/228349.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号