研发相关,来讨论下快手这道场景题好不?


有没有大佬帮忙看看快手这道场景题啊,考点是什么?当时面试的时候没get到点


/*
需要给同事A提供inShop接口,判断用户U是否在浏览店铺S
客户端每5秒调用consume传浏览东西Action
实现两个方法:consume,inShop

public class Action {
    private long userId;
    private long shopId;
}
public void consume(Action action);

public boolean inShop(long userId, long shopId) ;
*/
求讨论,求解答~~~
#Java开发##快手##笔试题目#
全部评论
有两种思路,一是定一个concurrenthashmap里面key是用户id和店铺id租个的一个字符串,然后value是当前时间。 Consume方法每获得一个消息就存到map里面。然后inShop方法去get,如果发现时间大于5s就反悔false。 但是这样内存应该会越占越大,每个用户每5s就存一次。 另外一个思路是用redis,来一个存一个key同样是用户id与店铺id的组合。value随意。设置5s的过期时间,如果查的时候发现没有那就是用浏览别的去了,或者用户下线了。
点赞 回复 分享
发布于 2021-06-28 01:15

相关推荐

11-08 17:36
诺瓦科技_HR
点赞 评论 收藏
分享
点赞 2 评论
分享
牛客网
牛客企业服务