是否可以通过spark并行写入Redis?
(或者:如何从火花中快速写出成千上万的键/列表)
目前,我正在按顺序写入Redis,并且它正在永远。我需要写大约90000个列表(长度为2-2000)。速度非常重要。目前,它正在接受1小时的订单。 Redis的传统基准测试声称每秒有数千个Redis写入,但在我的管道中,我并没有接近它。
感谢任何帮助。
答案 0 :(得分:2)
单个Redis实例在一个线程中运行,因此操作本质上是顺序的。如果您有Redis群集,则写入数据的实例取决于根据正在写入的密钥计算的hash slot。此哈希函数(以及其他内容)确保负载分布在集群中的所有Redis实例上。如果您的集群有N个实例,则您(几乎)最多可以执行N个并行写入。这是因为每个集群实例仍然是一个单独的线程。合理的Spark Redis连接器应该有效地利用集群。
无论哪种方式,Redis都非常快,特别是如果你使用mass inserts。