我需要向系统引入异步处理:当请求到来时,我启动后台作业并使用url响应以便稍后轮询结果。处理本身不应该花费几分钟,结果应该保存大约半小时。重复处理可能很昂贵,因此应减少因存储中断而导致结果丢失的可能性。
我正在评估Redis和Mongo的优势(使用TTL index)来存储结果。
系统已经使用了两者,因此在任何一种情况下引入新技术都不会产生额外成本。如果使用Redis,我理解我必须将其设置为使用AOF persistence来减少数据丢失的可能性,这意味着对其他Redis用例(例如作为缓存)。
我对数据完整性比对性能更感兴趣。我知道这两个选项应该运行良好,我想知道是否一个更适合这个特定的用例,或者更容易在将来给我带来操作问题。
答案 0 :(得分:0)
在您的情况下,Redis将是MongoDB的更好选择。以上情况类似于领导委员会,其保持结果直至其到期时间。可以在Redis中更好地实现缓存层,对于更具模式性的数据,MongoDB可能会更好。
您需要缓存来存储已处理作业的结果。