比较Redis与MongoDB的优劣(redismongodb)
Redis与MongoDB是当下应用最广泛的NOSQL数据库,它们各有其特性,也有其优缺点。其中,Redis是一个VOLTDB开源的使用内存的非关系型,支撑 key-value,列表,散列,集合,有序集合等数据类型数据库,通常用于支撑缓存和用于实现计数器,队列等业务等;而MongoDB是一款一开源型文档型数据库,支撑数据存储文档为BSON(JSON的一种格式)格式,通常用于分布式的存储,可用于实现CMS网站、数据仓库等业务需求。
首先,从存储容量上来说,MongoDB的存储容量要远大于Redis,MongoDB可以存储的容量非常大,而Redis的存储容量非常小,如果容量要求很大,建议使用MongoDB。
其次,从存储数据类型上来看,Redis是基于 key-value 比较简单,也支撑列表,散列,集合,有序集合等复杂类型数据,而MongoDB是文档型数据库,可以支撑比较复杂的JSON文档,所以,建议在复杂的数据量存储的时候使用MongoDB。
最后,在性能上来说,从测试结果来看,Redis的 Read/Write性能是优于MongoDB的,尤其在瓶颈在读/写性能上,Redis比MongoDB要快很多,而且Redis 访问时可以比 MongoDB 要快得多,这归功于 Redis 的索引方式比较简单,Redis 也是面向内存设计,速度自然快很多。
总而言之,Redis和MongoDB各有其各自的优点,根据业务场景来选择,Redis用于实现缓存、计数器,队列等场景,而MongoDB用于实现CMS网站、数据仓库等业务需求。
# Redis示例代码:
import redis r = redis.Redis(host='localhost', port=6379, db=0)
r.set('foo', 'bar') r.get('foo')
# MongoDB示例代码:
from pymongo import MongoClient client = MongoClient()
db = client.test_database collection = db.test_collection
post = {"author": "Mike", "text": "My first blog post!"} posts = db.posts
post_id = posts.insert_one(post).inserted_id post_id