缓存 – 在内存中缓存大量数据

我正在寻找一种可以处理大数据(<5GB)的内存缓存解决方案.对于用户输入的搜索项,数据库(elasticsearch)将返回大量数据,工具将通过该工具的不同网页分析和显示该数据.现在我的问题是我想临时缓存这些大数据,直到用户会话结束,这样每次用户打开新页面时我都不必再从elasticsearch中获取它.它必须在内存中,因为基于磁盘将花费一分钟,这将非常慢. 我最初认为memcached但它的最大限制为128MB.在阅读了相当多的内容后,Redis看起来很合适,但我不清楚一堆Redis节点是否可以串联工作.是否可以设置许多Redis节点的池,以便在SET上自动选择合适的节点,并且在GET时返回数据而不必指定节点? TL; DR

>问题:在内存缓存中缓存大数据(<5GB)

>可能的解决方案:Redis

>问题:我可以汇集一堆Redis节点,以便我可以获取存储在其中任何节点中的密钥而无需指定特定节点.我不需要分发我的数据,因为单个用户的数据将适合单个节点的RAM. 最佳答案 Redis群集听起来非常适合您的用例!

Redis集群通过散列槽提供数据分片机制.设置时,这些插槽均匀分布在群集中的节点上.

无论何时在cluser中存储值,都会计算给定密钥的相应散列槽,并将数据转发到负责节点.同样,您可以再次查询数据.所以你的问题的答案肯定是肯定的.

但是,每个键的最大值大小为512MB.我不确定我的存储要求是否正确.我假设5GB是所有用户的估计总金额.

结帐redis cluster tutorial.

点赞