Java流如何处理千万万数据的排序
问题:
在需要按内存排序大量数据的情况下,短时间内的大量排序操作可能导致内存溢出。如何解决这一问题?
答案:
立即学习“Java免费学习笔记(深入)”;
使用redis的有序集合(Sorted Set):
- 创建一个异步任务,将数据和对应的排序分数计算并存储到Redis的有序集合中。
- 按照需求从Redis中取出数据进行使用。
- 由于一个有序集合的理论值可以存储 40 多亿个数据,因此对于一般应用程序来说已足够。
- 对于有多个排序需求,可以根据需要将数据拆分为多个有序集合,通过不同的 key 进行管理。
参考文档:
Redis 有序集合文档:https://redis.io/topics/data-types-intro#sorted-sets