“耐用”我的意思是,服务器可以在任何时候崩溃,只要磁盘保持完好,没有数据丢失(请参阅ACID)。似乎这就是日志模式的用处,但是如果启用日记功能,这不会影响在内存数据上运行的目的吗?阅读操作可能不会受到日志记录的影响,但它看起来像日志记录会杀死您的写入性能。redis是一个持久的数据存储吗?
回答
Redis不是通常作为一个“持久”数据存储(即ACID中的“D”意义上),即使使用日记功能。大多数使用情况都会故意牺牲一点耐用性来换取速度。
但是,“追加唯一文件”存储模式可以选择配置为以性能为代价以持久方式运行。每次修改都需要支付fsync()。要配置此,在你的.conf文件中设置这两个选项:
appendonly yes
appendfsync always
从文档:How durable is the append only file?
检查redis.conf,您可以配置 Redis的多少次FSYNC()数据磁盘上的 。有三种选择:
- Fsync()每次将新命令添加到附加日志文件 时。很 很慢,很安全。
- Fsync()每秒钟一次 。足够快,并且如果发生 灾难,您可以丢失1秒的数据。
- 从不fsync(),只需将您的 数据交给Operating 系统即可。更快和不安全的方法。
(请注意,对于与Redis的-2.0.0后的配置文件航运appendfsync默认为everysec
,而不是always
。)
很高兴知道。你能提供一个链接来支持你在说什么吗? – allyourcode 2010-03-25 19:35:25
@FrankFarmer我编辑了一些答案,因为它已经过时了关于配置默认的信息,并且通过以“否”引导而“掩埋标题”有点过时。随时提高我的改进。 :-) – HostileFork 2015-02-27 18:04:54
@HostileFork考虑到你所做的实质性改变,我认为你最好提交自己的答案。已经足够长的时间了,肯定会有一个新的视角 – 2015-02-28 00:39:36
- 1. 从Redis到MongoDB的数据存储持久数据
- 2. Redis的2个实例:作为缓存和作为持久数据存储
- 3. 使用两个核心数据模型,一个持久存储协调器和多个持久存储?
- 4. Firebase数据库持久性存储
- 5. AngularJS - 投入持久数据存储
- 6. Redis发布/订阅数据持久性
- 7. PHP - Redis/Memcachedb/Mongodb或其他持久存储来存储计数器
- 8. Android:是Wearable.DataApi的DataMap是持久存储吗?
- 9. 持久性存储是否需要iPhone上的核心数据?
- 10. Redis是否具有选定键/数据的持久性功能?
- 11. 终极版存储一般的数据,非持久
- 12. 在持久性存储中存储数据
- 13. 具有多个持久性存储的核心数据
- 14. WKWebView Cookie的持久存储
- 15. UIVIew的持久存储器
- 16. 如何在持久性存储上创建两个持久存储协调器
- 17. Android是否永久存储SQLite数据,还是暂时存储?
- 18. 图形数据库如何将数据存储到持久存储?
- 19. 本地存储是否持久?
- 20. 是否存在从数据存储库/数据库中持久存储图像的库
- 21. 一个托管对象上下文的两个持久性存储 - 可能吗?
- 22. Chrome扩展与持久数据(数据存储)
- 23. JMS/ActiveMQ的持久存储容量足以支持200 GB吗?
- 24. BlackBerry持久性存储
- 25. 持久存储AIR for mobile
- 26. BlackBerry持久存储问题,
- 27. 持久存储Cocoa/MacOSX
- 28. 自定义持久存储?
- 29. Ignite C++持久存储
- 30. python,redis:在redis上存储一个多维列表。最好的数据类型?
你不能两者兼得。无论是有些数据都处于无效状态,或者您必须等待所有数据写入磁盘。 – 2010-03-15 20:08:28
这正是我问这个问题的原因。 – allyourcode 2010-03-18 06:45:22