MongoDB与Redis区别


简介:

1、MongoDB更类似于Mysql,支持字段索引,游标等操作,其优势在于查询功能强大, 擅长JSON数据,能够存储海量数据,不支持事务。

2、Mysql在大数据量时效率显著下降,MongoDB更多作为关系数据库的一种替代。

内存管理机制

Redis数据全部在内存,定期写入磁盘,当内存不够时,选择指定的LRU算法,定期删除。

MongoDB数据存在内存,由Linux的mmap映射文件技术实现。当内存不够时,只将热点数据放入内存,其他数据存在磁盘。

(mmap()系统调用使得进程之间通过映射同一个普通文件实现共享内存。普通文件被映射到进程地址空间后,进程可以像访问普通内存一样对文件进行访问,不必再调用read(),write()等操作。)

持久化机制:

Mongdb所有数据实际上是放在硬盘上的,所有要操作的数据通过mmap的方式映射到内存某个区域的。

mongodb避免了零碎的硬盘操作。

至于mmap上的内容flush到硬盘就是操作系统的事情了,所以,如果,mongodb在内存中修改了数据后,mmap数据flush到硬盘之前,系统宕机了,数据就会丢失。

mmap 系统调用使得进程之间通过映射同一个普通文件实现共享内存。普通文件被映射到进程地址空间后,进程可以像访问普通内存一样对文件进行访问,不必再调用。 read(),write()等操作。mmap并不分配空间, 只是将文件映射到调用进程的地址空间里, 然后你就可以用memcpy等操作写文件, 而不用write()了.写完后用msync()同步一下, 你所写的内容就保存到文件里了. 不过这种方式没办法增加文件的长度, 因为要映射的长度在调用mmap()的时候就决定了。)

 

 

 

 

 

 

MongoDB与Redis区别

 MongoDB与Redis区别

 

 

 MongoDB与Redis区别

 

原创文章,作者:sunnyman218,如若转载,请注明出处:https://blog.ytso.com/tech/database/276491.html

(0)
上一篇 2022年7月23日 21:04
下一篇 2022年7月23日 21:04

相关推荐

发表回复

登录后才能评论