除Java Collections之外的最快并发读取和写入集合

时间:2014-04-06 12:25:23

标签: java collections

我需要将字符串存储到集合中。该集合将持有数十亿字符串。

该集合必须支持以并发方式快速查找,添加和删除。

除Java集合外,是否有任何已知的快速,低延迟集合......

我搜索但没有遇到任何有趣的事情......

1 个答案:

答案 0 :(得分:2)

要在合理的成本服务器上保存数十亿个任意长度的字符串,您需要使用我在下面概述的策略。首先考虑“数十亿”字符串的含义:

  • 进行存储计算(例如,最多100亿个字符串,每个字符串平均64个字符):1.28万亿字节= 100亿x 64 x 2(UTF-8每个字符至少需要2个字节)

这意味着无法在计算机上使用存储来保存所有字符串。

所需的存储容量驱动一个人使用外部存储...最灵活的是使用数据库,前面是mamory中的缓存。由于Collection只是一个接口,你可以使用一个集合为字符串实现这个巨大的存储空间(这将在内部查找字符串并处理数据库的“溢出”。

进一步的含义:有一些必需的方法必须返回null或错误,因为它们没有存储来产生结果,例如

  • toArray,toArray

所以..为了回答你的问题,你需要为“巨大的容量”实现你自己的集合,并实现你自己的缓存(或使用像ehcache这样的产品......例如,不是推荐)