使用Redis实现门店最新5条购买记录
316
2023-03-23 21:12:04
如何通过java代码实现门店的最新购买记录做展示?
示例代码如下:
import redis.clients.jedis.Jedis; import redis.clients.jedis.Tuple; import java.util.ArrayList; import java.util.List; import java.util.Set; public class ShopRecord { private Jedis jedis; public ShopRecord() { this.jedis = new Jedis("localhost"); } // 添加购买记录 public void addRecord(String shopId, String record) { long timestamp = System.currentTimeMillis() / 1000; // 获取当前时间戳 jedis.zadd(shopId, timestamp, record); // 添加记录 jedis.zremrangeByScore(shopId, 0, timestamp - 2592000); // 删除30天前的记录 } // 获取最新的5条购买记录 public List<String> getLatestRecords(String shopId) { Set<Tuple> tuples = jedis.zrevrangeWithScores(shopId, 0, 4); // 获取Score值最大的5个记录 List<String> records = new ArrayList<>(); for (Tuple tuple : tuples) { records.add(tuple.getElement()); // 获取购买记录 } return records; } public static void main(String[] args) { ShopRecord shopRecord = new ShopRecord(); shopRecord.addRecord("shop001", "buy a book"); shopRecord.addRecord("shop001", "buy a pen"); shopRecord.addRecord("shop001", "buy a computer"); shopRecord.addRecord("shop001", "buy a phone"); shopRecord.addRecord("shop001", "buy a bag"); shopRecord.addRecord("shop001", "buy a cup"); List<String> latestRecords = shopRecord.getLatestRecords("shop001"); System.out.println(latestRecords); } }
运行结果如下:
[buy a cup, buy a bag, buy a phone, buy a computer, buy a pen]
原文链接: https://www.yukx.com/javadev/article/details/2384.html 优科学习网使用Redis实现门店最新5条购买记录
推荐文章
-
什么是高并发?高并发(HighConcurrency)是一种系统运行过程中遇到的一种“短时间内遇到大量操作请求”的情况,主要发生在web系统集中大量访问收到大量请求(例如:12306的抢票情况;天猫双十一活动)。该情况的发生会导致系统在这段时间内执行大量操作,例如对资源的请求,数据库的操作等。高并发
-
首先就是创建一个普通的Java工程,起名TrySpring,最终项目如下图:然后在创建两个包分别为service、spring。service用来存放bean、配置类等,spring包用来存放我们手撸的spring注解等在service中创建UserService类,再创建Test类,在Test类中
-
AQS(AbstractQueuedSynchronizer)是一个抽象的队列同步器,通过维护一个共享资源状态(VolatileIntState)和一个先进先出(FIFO)的线程等待队列来实现一个多线程访问共享资源的同步框架。一、AQS原理 AQS为每个共享资源都设置一个共享资源锁
-
word-break:break-all举例一般情况下,元素拥有默认的white-space:normal(自动换行,PS:不换行是white-space:nowrap),当录入的文字超过定义的宽度后会自动换行,但当录入的数据是一堆没有空格的字符或字母或数字(常规数据应该不会有吧,但有些测试人员是会
-
Bigdecimal的初始化这里对比了两种形式,第一种直接value写数字的值,第二种用string来表示 BigDecimal num1 = new BigDecimal(0.005); BigDecimal num2 = new BigDecimal(1000000
-
基本概念定义 双亲委派模型要求除了顶层的启动类加载器外,其余的类加载器都应当有自己的父类加载器。双亲委派机制双亲委派机制是指当一个类加载器收到一个类加载请求时,该类加载器首先会把请求委派给父类加载器。每个类加载器都是如此,只有在父类加载器在自己的搜索范围内找不到指定类时,子类加载器才会尝试自己去加载