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: 27017
  bindIp: 0.0.0.0
storage:
  dbPath: /data/db
  wiredTiger:
    engineConfig:
      cacheSizeGB: 2
systemLog:
  destination: file
  path: /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

你可能感兴趣的:(mongodb,redis,NoSQL实战,高并发架构,分片集群,分布式锁)