概述
衔接上文:(若对Spring整合Redis还不太了解请参考)
Spring整合Redis入门详解及基础练习_杨大仙爱篮球-CSDN博客
本文仅做功能测试,展示代码逻辑,后续会发布在项目中如何使用 。
购物车功能
购物车的定义非常简单:我们可以通过Redis中的hash来实现:
- 以每位用户的用户ID(或Cookie_id)作为hash的Key,那么每位用户的购物车就是一张哈希表,使用此哈希表存储商品ID与商品订购数量即可。
- 当购物车商品数量发生变化时,我们就可以通过使用Redis哈希中的方法以对购物车进行更新;
- 若用户订购某件商品的数量大于0,那么程序会将这件商品的ID以及用户订购该商品的数量添加至散列。
效果如图:
对应测试代码:
@Test // 购物车功能实现
public void testShopping() {
HashOperations forHash = redisTemplate.opsForHash();
forHash.put("user_1", "gid_1", 6); // 表示用户1买了6个1号商品
forHash.put("user_2", "gid_3", 1); // 表示用户2买了1个3号商品
// 加减购物车商品数量
forHash.increment("user_1", "gid_1", -1); // 用户1减去1件1号商品
forHash.increment("user_2", "gid_3", 1); // 用户2添加1件3号商品
// 查询购物车
Map user_1 = forHash.entries("user_1");
Set set = user_1.entrySet();
for (Object o : set) {
System.out.print("商品信息:" + o + " ");
}
}
购物车功能的实现及代码逻辑大致如此,实际使用时还需我们灵活运用。
计数器功能
Redis 哈希表作为计数器的使用也非常广泛。它常常被用于记录网站每一天、月、年的访问数量。
- 第一次访问,我们创建唯一标识(属性)并设置缺省值为1。
- 而后的每一次访问,我们只需在对应的属性自增1即可。代码测试如图:
@Test // 计数器功能实现,例如某网站一天的访问量
public void testCounter() {
HashOperations forHash = redisTemplate.opsForHash();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd");
String date = sdf.format(new Date());
// 判断当前日期是否存在
Boolean exist = forHash.hasKey("count", date);
if (exist) { // 若存在则访问量递增
forHash.increment("count", date, 1);
} else { // 第一次访问,创建并设缺省值为1
forHash.put("count", date, 1);
}
Object count = forHash.get("count", date);
System.out.println("日期:" + date + ",访问次数:" + count);
}
通过计数器也可以演变出很多功能,比如购物平台的好/差评功能。
好/差评功能
使用Redis的hash实现商品的好评与差评功能也非常简单。
由于好评差评是每件商品都有的,所以提前初始化,代码如图:
flag为模拟接收前台传来的参数,好评为true,差评为false。
@Test // 好评差评功能实现
public void testAppraise() {
HashOperations forHash = redisTemplate.opsForHash();
// 由于好评差评是每件商品都有的,所以提前初始化
forHash.put("goods_1", "good", 0);
forHash.put("goods_1", "bad", 0);
// flag为模拟接收前台传来的参数,好评为true,差评为false
boolean flag = true;
if (flag) { // 好评
forHash.increment("goods_1", "good", 1);
} else { // 差评
forHash.increment("goods_1", "bad", 1);
}
}
关于Redis实现购物车、计数器、好/差评等功能测试就到此告一段落。
编程非常有趣,我们可以代码实现生活中形形色色的场景,灵活运用便可以打开新世界的大门,欢迎大家一起学习探讨~
转载请注明出处
如有错误,欢迎指正
Thanks
最后
以上就是机智秀发为你收集整理的使用Redis实现购物车、计数器、好/差评等功能测试【一看就懂】的全部内容,希望文章能够帮你解决使用Redis实现购物车、计数器、好/差评等功能测试【一看就懂】所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复