NoSQL实战指南:MongoDB与Redis企业级开发实战
简介
掌握MongoDB和Redis的实战技能,是开发高并发、大数据量应用的必备能力。 本文将从安装配置到企业级实战,全面讲解这两种主流NoSQL数据库的核心特性和应用场景。通过详细的操作步骤、代码示例和架构设计,帮助开发者构建高效、可扩展的NoSQL解决方案。
一、安装配置
1.1 MongoDB 7.x安装与基础配置
MongoDB作为文档型数据库,其安装过程简单明了。在Linux系统中,可通过Docker快速部署MongoDB 7.x集群:
# 安装Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io# 创建MongoDB容器
docker run -d --name mongodb -p 27017:27017 -v /data/mongodb:/data/db -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=admin123 -t mongo:7.0
配置文件mongod.conf
中需注意以下关键参数:
net:port: 27017bindIp: 0.0.0.0
storage:dbPath: /data/dbwiredTiger:engineConfig:cacheSizeGB: 2
systemLog:destination: filepath: /var/log/mongodb/mongod.log
1.2 Redis 7.0安装与缓存配置
Redis作为内存数据库,安装同样简便。在Linux系统中可通过源码编译或预编译包安装:
# 安装Redis 7.0
wget http://download.redis.io/releases/redis-7.0.7.tar.gz
tar xzf redis-7.0.7.tar.gz
cd redis-7.0.7
make
sudo make install
Redis配置文件redis.conf
中需关注以下参数:
port 6379
bind 0.0.0.0
requirepass 123456
maxmemory 4gb
maxmemory-policy volatile-lru
1.3 集群环境搭建
在生产环境中,MongoDB和Redis通常以集群形式部署。以下是MongoDB分片集群和Redis集群的基本搭建步骤:
# MongoDB分片集群搭建
# 启动配置服务器
docker run -d --name configsvr1 -p 27019:27017 -v /data/configsvr1:/data/db -e MONGO_REPLICA_SET_NAME=configReplSet -t mongo:7.0 --configsvr --replSet configReplSet# 启动分片服务器
docker run -d --name shard1 -p 27020:27017 -v /data/shard1:/data/db -e MONGO_REPLICA_SET_NAME=shard1ReplSet -t mongo:7.0 --shardsvr --replSet shard1ReplSet# 启动Mongos路由
docker run -d --name mongos -p 27017:27017 -v /data/mongos:/data/db -t mongo:7.0 --mongos --configdb configReplSet/configsvr1:27017
Redis集群搭建可通过Redis Cluster命令实现:
# 启动Redis节点
redis-server --port 7000 --cluster-enabled yes --cluster-config-file nodes-7000.conf --cluster-node-timeout 5000
redis-server --port 7001 --cluster-enabled yes --cluster-config-file nodes-7001.conf --cluster-node-timeout 5000
redis-server --port 7002 --cluster-enabled yes --cluster-config-file nodes-7002.conf --cluster-node-timeout 5000# 创建集群
redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 --cluster-replicas 1
二、基本操作
2.1 MongoDB文档操作
MongoDB支持丰富的文档操作,包括CRUD和聚合查询。以下是一些基本操作示例:
// 连接MongoDB
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017';// 插入文档
MongoClient.connect(url, function(err, db) {if (err) throw err;const dbo = db.db("mydb");const myobj = { name: "John", age: 30, city: "New York" };dbo.collection("users").insertOne(myobj, function(err, res) {if (err) throw err;console.log("文档插入成功");db.close();});
});// 查询文档
dbo.collection("users").find({}).toArray(function(err, result) {if (err) throw err;console.log(result);db.close();
});// 更新文档
dbo.collection("users").updateOne({ name: "John" }, { $set: { age