维基百科称Redis是一种内存数据库,但它也可以“至少每2秒将数据持久化到磁盘”。我觉得这两件事是互相排斥的。既然Redis被认为是内存中的,那怎么可能(能够)将数据存储在磁盘上呢?我原以为内存中的定义意味着它不会存储到磁盘。
这是一个类似的问题:Redis概念:内存或数据库? 不同之处在于他询问持久性实现。我的问题是关于内存与持久性的概念。
维基百科称Redis是一种内存数据库,但它也可以“至少每2秒将数据持久化到磁盘”。我觉得这两件事是互相排斥的。既然Redis被认为是内存中的,那怎么可能(能够)将数据存储在磁盘上呢?我原以为内存中的定义意味着它不会存储到磁盘。
这是一个类似的问题:Redis概念:内存或数据库? 不同之处在于他询问持久性实现。我的问题是关于内存与持久性的概念。
它们并不是相互排斥的。In-memory 意味着所有数据都存储在内存中以供访问。这并不意味着也不应该偶尔将其存储到磁盘上,但绝对不应该从磁盘访问,除非发生一些异常事件。 读取数据时,可以从磁盘或内存中读取。在 Redis 的情况下,它总是从内存中检索(因此- 内存数据库)。 每两秒将数据写入磁盘有助于在停机情况下备份数据。一方面,访问数据库的用户访问存储在内存中的数据,另一方面,备份机制从内存中访问数据并将其写入磁盘。 发生系统故障时,存储在内存中的数据会丢失。但是在启动时,数据(最多最近 2 秒的数据)会从磁盘检索并再次存储到内存中供应用程序使用。
Redis是一种基于内存的数据库(IMDB),它依赖计算机的主内存来存储数据,而其他数据库则使用磁盘存储机制。这就是为什么Redis比优化磁盘的数据库更快,因为磁盘访问比内存访问慢。