比较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

数据运维技术 » 比较Redis与MongoDB的优劣(redismongodb)