day06业务题

6-1 HashMap和CurrentHashMap的区别是什么?  CurrentHashMap底层结构在1.7和1.8有什么不同?

HashMap和CurrentHashMap的区别主要体现在线程安全不同,ConcurrentHashMapp对整个桶数组进行了分割分段,然后在每一个分段上用locke锁,HashMap没有锁也就不是线程安全的

在JDK1.7时CurrentHashMap底层采用分段的数组加链表实现

在JDK1.8之后数据结构就和HashMap一样了采用数组加链表/红黑二叉树
6-2 假设你有一批历史积分数据要存储,数量在kw条左右 存入mysql 你的方案是什么

将历史积分数据分区存储。

将历史数据按照合适的日期划分保证每个分区的数据不过多,然后给表名取标识,让某个区间段的数据存储在一个表上。


6-3 请你说一说你的排行榜功能是如何实现的

将Redis中将一段时间内的每个用户积分进行统计,统计完后排序放入一个新的Zset表。历史赛季积分榜会存在数据库中

当保存用户积分记录时也根据时间段保存用户这一个时间段的总积分。

查询当前时间段积分排行时,会分开查询当前用户的排名和当前赛季排行榜

查询历史积分排行榜时会直接查询保存在数据库的历史赛季排行榜。


6-4 历史赛季积分是如何生成的

将存储在Redis的数据定时持久化到数据库中,查询时再从数据库查询。

先生成一个历史赛季榜单,再从Redis中读取历史赛季积分,将排名为主键存入表中,再将Redis缓存清除


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值