我有一个中型对象,最大大小为10MB。
使用Redux-Persist在Redux中存储的最大大小是多少?
另外,使用Redux-Persist或使用诸如领域之类的数据库的最佳方法是什么?
更新
最初写这篇文章时,无法设置AsyncStorage
的大小。但是,在2019年5月,以下提交改变了这一点。
您可以在此处阅读更多有关它的信息
当前的异步存储大小设置为6MB。越过此限制导致数据库或磁盘是完全错误。该6MB限制是保护用户免受数据库中存储过多数据的应用程序的理智限制。这还可以保护数据库免于填充磁盘缓存并变得畸形(EndTransaction()调用将引发异常,而不是回滚,并留下DB畸形)。在增加数据库大小时,您必须意识到这种风险。我们建议您确保您的应用不会将比磁盘上留下的空间数据编写更多的数据。由于Asyncstorage基于Android上的SQLite,因此您还必须了解SQLite限制。
如果您仍然希望增加存储能力,则可以将以下内容添加到android/gradle.properties
AsyncStorage_db_size_in_MB=10
这将设置为 10MB 的大小,而不是默认 6MB 。
原始答案
如果您在 react-native
中使用 redux-persist
的默认存储设置,它将使用asyncstorage
AsyncStorage
在您使用的操作系统方面可以存储的数量有一些限制。
在Android中,如果我们查看AsyncStorage
后面的本机代码,我们可以看到上限只是 6MB
在iOS中,可以使用的存储量没有这样的限制。您可以看到此答案以进行进一步讨论。
如果您不想使用AsnycStorage
,则有诸如redux-persist-fs-storage
或redux-persist-filesystem-storage
之类的替代方案,它们围绕 6MB Android上的限制。