Web开发来一发(七)Redis和Memcached

1、Redis简介

Redis是一个Key-Value存储系统,可以支持String、List、Set等作为value进行存储,并且支持push/pop、add/remove及取交集并集和差集及更丰富的操作,且保证这些操作的原子性,另外还支持排序。

Redis数据是放在内存中的,但会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Redis只能使用单线程,性能受限于CPU性能,只能达到几万QPS。但并发情况下不需要考虑数据一致性问题。

2、Memcached简介

Memcached是一个高性能的分布式内存对象缓存系统。

Memcached只支持简单的key/value数据结构,不像Redis可以支持丰富的数据类型。

Memcached无法进行持久化,数据不能备份,只能用于缓存使用,且重启后数据全部丢失。

Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS。

3、MongoDB简介

MongoDB是一个介于关系数据库和非关系数据库之间的NoSQL数据库,是非关系数据库当中功能最丰富,最像关系数据库的产品。MongoDB支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。

MongoDB支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

MongoDB适合大数据量的存储,依赖操作系统VM做内存管理,很占内存。

MongoDB不支持事务。

4、应用场景

Redis适用于对读写效率要求都很高,数据处理业务复杂和对安全性要求较高的系统。

MongoDB主要解决海量数据的访问效率问题。

Memcached用于在动态系统中减少数据库负载,适合多读少写的场景。

参考资料:

https://www.cnblogs.com/boazy/p/Redis.html

猜你喜欢

转载自blog.csdn.net/ss1300460973/article/details/85994713