我坚持解决这个问题。
我的项目需要存储大量的K V数据(其中K是id和Value,例如MyData类的一个示例),并以良好的速度从DB通过id获得它。 3天后,该数据必须过期(从数据库中删除)。
据此,我阅读了很多有关Redis的内容,我们开始使用它。 我们对RAM没问题:)所以一切都很好。我们的负载是每24小时1百万条Redis记录。因此,在72小时之后,我们大约有300万条记录。
问题是我们想创建一个简单的分析服务,该服务将根据DataStructure(字段的值)对数据进行计数和分析。 我发现Redis操作(例如SCAN)不支持按值搜索。仅按键。
我找到了一个小解决方案:将字段的某些值连接到Key中(例如“ MyData:id7123718238,w788”)。听起来不错,但是如果我们需要所有自定义查询,就需要将所有值公开给Key,这很不好。
请有人建议我其他解决方案,或者为此建议我其他数据库类型。谢谢
答案 0 :(得分:1)
在Redis中迭代大量数据似乎不是一个好方法。如果您甚至还希望使用Redis进行分析,请建立索引并提供支持:Secondary indexing with Redis
但是,如果您打算进行扩展,最好将数据流划分为热存储(Redis)和分析(任何快速分析数据库)。将它们写入并查询在给定情况下哪个更合适。