MongoDB学习笔记魅力所在
MongoDB是现今最火的NoSQL之一,暑假终于有时间把《MongoDB权威指南》和NoSQL Fan上关于它的一些文章浏览了一些,下面我简单总结
MongoDB是现今最火的NoSQL之一,暑假终于有时间把《MongoDB权威指南》和NoSQL Fan上关于它的一些文章浏览了一些,下面我简单总结几点MongoDB吸引人的地方。关于MongoDB的基本操作,运维,使用,大家可以自己去看书或者学习资料。
1. 较之别的NoSQL
《MongoDB: The Definition Guide》一书中说,“要是不能用的话,再牛的技术也是空谈,MongoDB致力于容易上手、便于使用”。前段时间,阿里的一位搞HBase的师兄,春辉,花了两个多小时,深入浅出讲解了HBase的一些东西,感触很深。相比于HBase这样一个基于HDFS的Big Data的实现,它的架构和层次更复杂。而对于Facebook一手捧红而今又不再维护了的Cassandra,难免让人觉得不太promising了。
MongoDB的社区还是相当活跃的。MongoDB是一个面向文档的数据库,目前由10gen开发并维护,它的功能丰富,齐全。
MongoDB使用JSON的变种BSON作为内部存储的格式和语法。针对MongoDB的操作都使用JSON风格语法,客户端提交或接收的数据都使用JSON形式来展现。相对于SQL来说,更加直观,容易理解和掌握。
Schema-less,支持嵌入子文档:MongoDB是一个Schema-free的文档数据库。一个数据库可以有多个Collection,每个 Collection是Documents的集合。Collection和Document和传统数据库的Table和Row并不对等。无需事先定义 Collection,随时可以创建。
CRUD更加简单,支持in-place update:只要定义一个数组,然后传递给MongoDB的insert/update方法就可自动插入或更 新;对于更新模式,MongoDB支持一个upsert选项,即:“如果记录存在那么更新,否则插入”。MongoDB的update方法还支持 Modifier,通过Modifier可实现在服务端即时更新,省去客户端和服务端的通讯。这些modifer可以让MongoDB具有和Redis、 Memcached等KV类似的功能:较之MySQL,MonoDB更加简单快速。Modifier也是MongoDB可以作为对用户行为跟踪的容器。在实际中使用Modifier来将用户的交互行为快速保存到MongoDB中以便后期进行统计分析和个性化定制。
性能高效,速度快: MongoDB使用c++/boost编写,,在多数场合,其查询速度对比MySQL要快的多,对于CPU占用非常小。部署也很简单,对大多数系统,只需下载后二进制包解压就可以直接运行,几乎是零配置。
2. 支持多种复制模式
MongoDB支持不同的服务器间进行复制,包括双机互备的容错方案。Master-Slave是最常见的。通过Master-Slave可以实现数据的备份。在我们的实践中,我们使用的是Master-Slave模式,Slave只用于后备,实际的读写都是从Master节点执行。Replica Pairs/Replica Sets允许2个MongoDB相互监听,实现双机互备的容错。
3. MongoDB内融合的一些东西
MongoDB的shell命令全面支持js,甚至比js多一些类型,而且可以存储js函数和变量。MongoDB自带Mapreduce的功能,只是这个MapReduce功能只支持js语法(函数map和reduce是js写的),且js引擎的实现导致一个实例只能运行一个map/reduce线程。MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。MongoDB不支持事务级别的锁定,对于某些需要自定义的“原子性”操作,可以使用Server side脚本来实 现,此时整个MongoDB处于锁定状态。Map/Reduce也是MongoDB中比较吸引人的特性。Map/Reduce可以对大数据量的表进行统 计、分类、合并的工作,完成原先SQL的GroupBy等聚合函数的功能。并且Mapper和Reducer的定义都是用Javascript来定义服务 端脚本。此外,MongoDB shell下支持的正则表达式是Perl兼容的PCRE。MongoDB支持java驱动,可以结合Python,PHP,Ruby这些脚本语言使用,如PyMongo。
4. GridFS
GridFS用于MongoDB中存储大二文件,基本思想是将将文件文成很多块,每块作为一个单独的文档存储。只要使用./mongofile put filename,文件就会被存在GridFS内,经md5处理,存在MongoDB的fs.files数据库内。GridFS可以应用于存视频,图片,而MongoDB有Sharding和Replica Set的支持,还顺便解决了分布存储的问题,所以很诱惑人。附上一个应用例子: 基于MongoDB GridFS的图片存储
5. 产品的代替和演变
LAMP(linux+apache+mysql+php)是以前web开发中的一盏明灯。而随着web应用规模的扩大,越来越多的Nginx开始取代apache,缓存层将mysql的功能逐渐弱化,越来越多的NoSQL产品以其简单灵活和高性能向MySQL的地位发起挑战,由全新的组合:Unix系列系统,加node.js,再加上MongoDB组成一个新的web开发框架。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Les dernières versions d'Apple des systèmes iOS18, iPadOS18 et macOS Sequoia ont ajouté une fonctionnalité importante à l'application Photos, conçue pour aider les utilisateurs à récupérer facilement des photos et des vidéos perdues ou endommagées pour diverses raisons. La nouvelle fonctionnalité introduit un album appelé "Récupéré" dans la section Outils de l'application Photos qui apparaîtra automatiquement lorsqu'un utilisateur a des photos ou des vidéos sur son appareil qui ne font pas partie de sa photothèque. L'émergence de l'album « Récupéré » offre une solution aux photos et vidéos perdues en raison d'une corruption de la base de données, d'une application d'appareil photo qui n'enregistre pas correctement dans la photothèque ou d'une application tierce gérant la photothèque. Les utilisateurs n'ont besoin que de quelques étapes simples

Comment utiliser MySQLi pour établir une connexion à une base de données en PHP : Inclure l'extension MySQLi (require_once) Créer une fonction de connexion (functionconnect_to_db) Appeler la fonction de connexion ($conn=connect_to_db()) Exécuter une requête ($result=$conn->query()) Fermer connexion ( $conn->close())

Pour gérer les erreurs de connexion à la base de données en PHP, vous pouvez utiliser les étapes suivantes : Utilisez mysqli_connect_errno() pour obtenir le code d'erreur. Utilisez mysqli_connect_error() pour obtenir le message d'erreur. En capturant et en enregistrant ces messages d'erreur, les problèmes de connexion à la base de données peuvent être facilement identifiés et résolus, garantissant ainsi le bon fonctionnement de votre application.

Comment intégrer GoWebSocket à une base de données : Configurer une connexion à la base de données : Utilisez le package database/sql pour vous connecter à la base de données. Stocker les messages WebSocket dans la base de données : utilisez l'instruction INSERT pour insérer le message dans la base de données. Récupérer les messages WebSocket de la base de données : utilisez l'instruction SELECT pour récupérer les messages de la base de données.

Les données JSON peuvent être enregistrées dans une base de données MySQL à l'aide de la bibliothèque gjson ou de la fonction json.Unmarshal. La bibliothèque gjson fournit des méthodes pratiques pour analyser les champs JSON, et la fonction json.Unmarshal nécessite un pointeur de type cible pour désorganiser les données JSON. Les deux méthodes nécessitent la préparation d'instructions SQL et l'exécution d'opérations d'insertion pour conserver les données dans la base de données.

Pour éviter les erreurs de connexion à la base de données PHP, suivez les meilleures pratiques : recherchez les erreurs de connexion et faites correspondre les noms de variables avec les informations d'identification. Utilisez un stockage sécurisé ou des variables d’environnement pour éviter de coder en dur les informations d’identification. Fermez la connexion après utilisation pour empêcher l'injection SQL et utilisez des instructions préparées ou des paramètres liés.

Cet article décrit comment construire une base de données MongoDB hautement disponible sur un système Debian. Nous explorerons plusieurs façons de garantir que la sécurité des données et les services continueront de fonctionner. Stratégie clé: réplicaset: réplicaset: Utilisez des répliques pour obtenir la redondance des données et le basculement automatique. Lorsqu'un nœud maître échoue, l'ensemble de répliques élise automatiquement un nouveau nœud maître pour assurer la disponibilité continue du service. Sauvegarde et récupération des données: utilisez régulièrement la commande Mongodump pour sauvegarder la base de données et formuler des stratégies de récupération efficaces pour faire face au risque de perte de données. Surveillance et alarmes: déploier les outils de surveillance (tels que Prometheus, Grafana) pour surveiller l'état de course de MongoDB en temps réel, et

Cet article présente comment configurer MongoDB sur Debian System pour réaliser une expansion automatique. Les étapes principales incluent la configuration de l'ensemble de répliques MongoDB et de la surveillance de l'espace disque. 1. Installation de MongoDB Tout d'abord, assurez-vous que MongoDB est installé sur le système Debian. Installez à l'aide de la commande suivante: SudoaptupDaSudoaptInstall-myongoDB-Org 2. Configuration de la réplique MongoDB Ensemble de répliques MongoDB assure la haute disponibilité et la redondance des données, ce qui est la base de la réalisation d'une expansion de capacité automatique. Démarrer le service MongoDB: Sudosystemctlstartmongodsudosys
