题目:1分钟内用户上线的数目是60万,如果用户在5分钟内重复上线,就给他发警告,问如何设计?
考虑:要判断用户是否在5分内重复上线,那么至少要(也只需要)保存距当前时刻5分钟内的登录用户的信息(只要简单的ID)
从这个开始出发,需要考虑的问题为2个:
1.如何在迅速判断用户是否在保存的数据中 (这个理所当然想道用hash)
2. 如果把过期的数据删掉 (这个就想到维护一个时间链表,把到期的通过链表来删除)
这个是半年前腾讯面试的时候碰到的题目,当时觉得很难,今天走在路上突然想起,想了想,突然想到这种方法,也许不是最好,但至少解决了,也了解了一件事