简介:本文为NoSQL新手提供详细的安装教程与入门指南,涵盖主流NoSQL数据库MongoDB、Redis的安装配置,以及核心概念、数据模型、CRUD操作等基础知识,助力快速掌握NoSQL技术。
在传统关系型数据库(如MySQL、Oracle)占据主导地位的今天,NoSQL(Not Only SQL)数据库凭借其灵活性、可扩展性和高性能,成为大数据、实时应用和分布式系统的首选。无论是处理海量非结构化数据(如日志、社交媒体内容),还是构建高并发的微服务架构,NoSQL都能提供更高效的解决方案。
本文将分为两大部分:NoSQL安装教程(以MongoDB和Redis为例)和NoSQL入门核心知识,帮助读者从零开始掌握NoSQL技术。
MongoDB是最流行的文档型NoSQL数据库之一,适合存储JSON格式的灵活数据。
C:\Program Files\MongoDB\Server\<version>\。Path中添加MongoDB的bin目录路径(如C:\Program Files\MongoDB\Server\6.0\bin)。C:\下新建data\db文件夹(MongoDB默认存储路径)。
mongod --dbpath "C:\data\db"
mongod --dbpath "C:\data\db" --installnet start MongoDB
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt-get updatesudo apt-get install -y mongodb-org
sudo systemctl start mongodsudo systemctl enable mongod # 开机自启
http://localhost:27017(MongoDB默认端口),或使用MongoDB Shell:输入
mongosh
db.runCommand({ping: 1}),返回{"ok": 1}表示成功。Redis是高性能的键值对NoSQL数据库,常用于缓存和会话管理。
.zip压缩包。C:\redis,打开CMD进入该目录。
redis-server.exe redis.windows.conf
输入
redis-cli.exe
PING,返回PONG表示成功。
sudo apt updatesudo apt install redis-server
/etc/redis/redis.conf,找到bind 127.0.0.1,改为bind 0.0.0.0(需谨慎,生产环境建议配置防火墙)。# requirepass foobared的注释,修改为requirepass yourpassword。
sudo systemctl restart redis
redis-cli> SET test "Hello Redis"> GET test
redis-cli -h <服务器IP> -a yourpassword
| 类型 | 代表数据库 | 特点 | 适用场景 |
|---|---|---|---|
| 文档型 | MongoDB, CouchDB | 存储JSON/BSON,无固定模式 | 内容管理系统、用户数据 |
| 键值对 | Redis, DynamoDB | 简单高效,支持高并发 | 缓存、会话存储 |
| 列族型 | Cassandra, HBase | 按列存储,适合海量数据 | 日志分析、时间序列数据 |
| 图数据库 | Neo4j, ArangoDB | 节点和关系建模,支持复杂查询 | 社交网络、推荐系统 |
// 切换/创建数据库(不存在时自动创建)use mydb// 查看所有数据库show dbs// 创建集合(类似表)db.createCollection("users")// 查看集合show collections
// 插入文档db.users.insertOne({name: "Alice",age: 25,email: "alice@example.com"})// 查询文档db.users.find({age: {$gt: 20}}) // 年龄大于20// 更新文档db.users.updateOne({name: "Alice"},{$set: {age: 26}})// 删除文档db.users.deleteOne({name: "Alice"})
# 设置键值对SET user:1001 "Alice"# 获取值GET user:1001# 设置过期时间(10秒)SETEX user:1002 "Bob" 10
# 存储用户对象HSET user:1003 name "Charlie" age 30# 获取字段HGET user:1003 name# 获取所有字段HGETALL user:1003
# 从左侧插入LPUSH messages "Hello"LPUSH messages "World"# 获取列表长度LLEN messages# 弹出最右侧元素RPOP messages
/data/db是否存在且权限正确。INFO memory检查内存使用情况,避免内存溢出。本文通过MongoDB和Redis的安装教程,结合核心操作示例,为读者提供了NoSQL的入门路径。NoSQL的优势在于灵活性和可扩展性,但也需要开发者适应无模式设计、最终一致性等特性。建议从文档型或键值对数据库入手,逐步探索列族型和图数据库的高级用法。
下一步行动: