我是靠谱客的博主 彪壮小蘑菇,最近开发中收集的这篇文章主要介绍redis 哈希数据类型简单操作(实现购物车案例),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

简单方法操作如下

1:hSet 

2:hGet

4:hDel

5:hGetAll

4:hExists

5:hIncrBy

简单购物车实现

 

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
namespaceHomeController;
useThinkController;
useOrgNetHttp;
useThinkCacheDriverRedis;
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 ;
}<br>
/**
*@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 哈希数据类型简单操作(实现购物车案例)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部