登录 |  注册
首页 >  编程语言 >  Java常用开发工具类案例代码 >  使用Redis实现门店最新5条购买记录

使用Redis实现门店最新5条购买记录

如何通过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条购买记录

<<上一课程
下一课程>>
推荐文章
  • 首先就是创建一个普通的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
  • 基本概念定义 双亲委派模型要求除了顶层的启动类加载器外,其余的类加载器都应当有自己的父类加载器。双亲委派机制双亲委派机制是指当一个类加载器收到一个类加载请求时,该类加载器首先会把请求委派给父类加载器。每个类加载器都是如此,只有在父类加载器在自己的搜索范围内找不到指定类时,子类加载器才会尝试自己去加载
  • 主要看在resouces目录下的路径和mapper接口的路径是否一致。如接口路径:com.yukx.demo.mapper则在resouces目录下的文件路径:com/yukx/demo/mapper, 而不是如图的那个文件
学习大纲