概述
这里不累赘如何安装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 哈希数据类型简单操作(实现购物车案例)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复