带你了解mysql+mongodb+redis
一.数据库类型关系型数据库SQL核心特征它严格遵循 ACID 原则原子性、一致性、隔离性、持久性所以数据一致性和事务支持极强非常适合银行、ERP等对准确性要求高的系统。SQL差异“细微差异”在实际中主要影响分页LIMIT vs ROWNUM和日期函数开发时需要注意。非关系型数据库NoSQL核心特征它放弃强一致性追求 CAP 理论一致性、可用性、分区容错性中的可用性和分区容错性所以读写性能极高扩展性强。二.Mysql使用mysql官方镜像wget https://dev.mysql.com/get/mysql-apt-config_0.8.40-1_all.debsudo dpkg -i mysql-apt-config_0.8.40-1_all.debsudo apt updateapt install mysql-serverapt install mysql-server直接使用Ubuntu镜像启动服务systemctl/service mysql start登录到数据库mysql -u root -p可以直接使用Ubuntu的root免密登录到mysql远程连接linux/etc/mysql/mysql.conf.d/mysqld.cnfbind_address0.0.0.0systemctl restart mysqlservice mysql restart开放用户的 host“%”阿里云、腾讯云 设置 防火墙模板/安全组1.进入MySQL2.MySQL指令数据库相关查看所有的数据库show databases;创建数据库create database qiku character set utf8;create database qiku;create database if not exists qiku character set utf8;查看当前数据库select database();只有选择数据库以后才能操作表切换数据库use 数据库名;删除数据库drop database 数据库名修改数据库编码alter database 数据库名 character set utf8;查找select * from 表名;查询所有数据大表效率低下慎用创建表id INT AUTO_INCREMENT PRIMARY KEY: 将id设为主键它会自动生成唯一值确保每行数据都可被唯一标识。username VARCHAR(50) NOT NULL: NOT NULL约束确保该字段必须有值。UNIQUE: 确保email字段的值不会重复插入数据插入一条数据插入多条数据查询所有用户的所有信息查询特定字段并按id排序条件查询查询用户名为 ‘alice’ 的记录更新用户 alice 的邮箱删除用户名为 ‘charlie’ 的记录添加一个 age (年龄) 列创建用户create user ‘用户名’‘主机’ identified by ‘123456’;%所有主机均可访问192.168.13.13修改密码alter user ‘用户名’‘主机’ identified by ‘123456’;删除用户drop user ‘用户名’‘主机’分配权限grant 权限1… on qiku.* to ‘用户名’‘host’取消权限revoke 权限1… on qiku.* to ‘用户名’‘host’约束主键约束primary key能够确定唯一的一行必须存在内容不重复组合主键Host与User两个字段共同组成User表的主键非空约束not null不能为空默认值default 100default ‘男’唯一约束Unique不能存在重复项自增长auto_increment维护了最大的增长值每次1检查check(age0)外键foreign key表与表之间存在关联关系外键关联创建表时设置外键create table name(… primary key(id), constraint fk_表_列 foreign key(列) references 表(列) on delete cascade on update cascade )给已有表设置外键alter table name add constraint fk_表_列 foreign key(列) references 表(列) on delete cascade on update cascade )删除外键alter table name drop foreign key 外键名关联关系一对一可以合并为一个表为了减少表数据量进行拆分把外键定义在任意一方案例用户表用户详情表一对多外键定义在多方案例用户表用户收货地址表多对多通过第三张表来存储关联关系第三张表存两个外键案例文章表标签表自关联自己关联自己案例分类表一级分类没有父级分类二.Mongodbmongodb文档型数据库 无固定结构Ubuntu 安装官方导入官方GPG密钥sudo apt-get install gnupg curlcurl -fsSL https://pgp.mongodb.com/server-8.0.asc | \sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor添加MongoDB APT源echo deb [ archamd64,arm64 signed-by/usr/share/keyrings/mongodb-server-8.0.gpg ]https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list **更新并安装** sudo apt-get update sudo apt-get install -y mongodb-org **启动** mongod --config /etc/mongod.conf问题解决操作 指令连接本地默认实例 (27017端口) mongo连接指定主机和端口 mongo --host --port查看所有数据库 show dbs 或 show databases切换或创建数据库 use database_name查看当前数据库 db显示当前数据库的所有集合 show collections 或 show tables查看命令帮助 help 或 db.help() 集合操作操作 指令显式创建集合 db.createCollection(“collection_name”)隐式创建并插入文档 db..insertOne({…})删除集合 db..drop() 文档 CRUD 操作增 (Create)插入单个文档 db..insertOne({name: “Alice”, age: 25})插入多个文档: db..insertMany([{name: “Bob”}, {name: “Charlie”}])查 (Read)查询所有文档: db..find()条件查询: db..find({age: 25})比较运算符查询:大于: db..find({age: {KaTeX parse error: Expected EOF, got } at position 7: gt: 20}̲}) 小于等于: db.c…lte: 30}})逻辑运算符查询 (AND): db..find({KaTeX parse error: Expected }, got EOF at end of input: and: [{age: {gt: 20}}, {age: {KaTeX parse error: Expected EOF, got } at position 7: lt: 30}̲}]}) 其他常用查询: 模…exists: true}})数组长度匹配: db..find({tags: {KaTeX parse error: Expected EOF, got } at position 8: size: 3}̲}) 查询结果处理: 限制返…gt: 20}})改 (Update)更新单个文档: db..updateOne({name: “Alice”}, {KaTeX parse error: Expected EOF, got } at position 15: set: {age: 26}}̲) 更新多个文档: db.…gt: 30}}, {KaTeX parse error: Expected EOF, got } at position 24: …atus: senior}}̲) 数值增减 (inc): db..updateOne({name: “Alice”}, {KaTeX parse error: Expected EOF, got } at position 14: inc: {age: 1}}̲) 删 (Delete) 删…gt: 30}})索引管理操作 指令创建索引 (1升序-1降序) db..createIndex({name: 1})查看集合的所有索引 db..getIndexes()删除指定索引 db..dropIndex(“index_name”)管理与实用命令操作 指令删除当前数据库 db.dropDatabase()查看数据库统计信息 db.stats()查看当前集合的帮助 db..help()四.redis内存数据库键值对数据库安装apt install redis-server启动redis-server /etc/redis/redis.cnf连接redis-cli通用键Key操作操作 指令查看所有键生产慎用 KEYS *查看匹配模式的键 KEYS pattern如 KEYS user:*判断键是否存在 EXISTS删除键 DEL设置键的过期时间秒 EXPIRE查看键的剩余生存时间 TTL -1 永久-2 不存在查看键的数据类型 TYPE重命名键 RENAME old_key new_key随机返回一个键 RANDOMKEY从当前数据库移动键到指定数据库 MOVE db_index字符串String操作操作 指令设置键值 SET获取键值 GET设置键值并指定过期时间秒 SETEX仅当键不存在时设置分布式锁常用 SETNX批量设置 MSET …批量获取 MGET …追加值到字符串末尾 APPEND获取字符串长度 STRLEN数值增减原子操作 INCR 1DECR -1INCRBYDECRBY列表List操作特点有序可重复支持两端操作操作 指令从左侧插入元素 LPUSH从右侧插入元素 RPUSH从左侧弹出元素 LPOP从右侧弹出元素 RPOP获取指定范围的元素 LRANGE0 开始-1 表示最后获取列表长度 LLEN通过索引获取元素 LINDEX移除指定元素 LREM count0 从头删0 从尾删修剪列表保留指定范围 LTRIM集合Set操作特点无序元素唯一操作 指令添加元素 SADD移除元素 SREM获取所有元素 SMEMBERS判断元素是否存在 SISMEMBER获取集合大小 SCARD随机移除并返回一个元素 SPOP随机返回一个元素不移除 SRANDMEMBER求交集 SINTER求并集 SUNION求差集 SDIFF有序集合Sorted Set操作特点有序元素唯一每个元素关联一个分数score操作 指令添加元素 ZADD移除元素 ZREM获取元素分数 ZSCORE获取元素排名升序从0开始 ZRANK获取元素排名降序 ZREVRANK获取指定分数范围的元素 ZRANGE按分数升序获取指定分数范围的元素降序 ZREVRANGE获取指定分数范围的元素 ZRANGEBYSCORE获取集合大小 ZCARD获取指定分数范围内的元素个数 ZCOUNT哈希Hash操作特点类似对象/字典适合存储对象操作 指令设置字段值 HSET获取字段值 HGET批量设置字段 HMSET …批量获取字段 HMGET …获取所有字段和值 HGETALL获取所有字段名 HKEYS获取所有值 HVALS获取字段数量 HLEN判断字段是否存在 HEXISTS删除字段 HDEL数值增减 HINCRBY位图Bitmap操作操作 指令设置或清除指定位 SETBIT 0 或 1获取指定位的值 GETBIT统计被设置为 1 的位数 BITCOUNTHyperLogLog 操作基数统计操作 指令添加元素 PFADD获取基数估计值 PFCOUNT合并多个 HyperLogLog PFMERGEGEO 地理空间操作操作 指令添加地理位置 GEOADD获取位置的经纬度 GEOPOS计算两个位置之间的距离 GEODIST获取指定半径内的位置 GEORADIUS 单位m/km/ft/mi事务操作操作 指令标记事务开始 MULTI执行事务 EXEC取消事务 DISCARD监视键乐观锁 WATCH取消监视 UNWATCH发布/订阅Pub/Sub操作 指令订阅频道 SUBSCRIBE按模式订阅 PSUBSCRIBE发布消息 PUBLISH退订频道 UNSUBSCRIBE查看活跃频道 PUBSUB CHANNELS️数据库管理操作 指令切换数据库0-15默认16个 SELECT db_index清空当前数据库 FLUSHDB清空所有数据库 FLUSHALL查看数据库大小键数量 DBSIZE查看当前数据库的键数量 INFO keyspace保存数据到磁盘阻塞 SAVE后台保存数据到磁盘 BGSAVE从 RDB 文件恢复数据 LASTSAVE查看最后保存时间将当前数据库的键移动到指定数据库 MOVE db_index安全与管理操作 指令设置密码需重启生效 修改配置文件 requirepass运行时设置密码 CONFIG SET requirepass认证密码 AUTH查看当前连接的客户端 CLIENT LIST关闭当前客户端连接 CLIENT KILL ip:port查看 Redis 慢日志 SLOWLOG GET监控 Redis 实时命令 MONITOR生产慎用调试与性能操作 指令返回当前服务器时间 TIME返回 Redis 版本信息 INFO server执行命令并返回耗时微秒 SLOWLOGPing 测试延迟 PING模拟内存碎片整理 MEMORY PURGE查看内存使用情况 INFO memory查看键的内存占用 MEMORY USAGE

相关新闻

IEEE TIV期刊On Hold状态解析与智能网联汽车研究投稿策略

IEEE TIV期刊On Hold状态解析与智能网联汽车研究投稿策略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 1:14:08 阅读更多 →
AI Skills最佳实践:从Agent工具调度到腾讯云部署全指南

AI Skills最佳实践:从Agent工具调度到腾讯云部署全指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 1:14:14 阅读更多 →
机器学习模型部署实战:从环境配置到生产级应用

机器学习模型部署实战:从环境配置到生产级应用

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 1:14:14 阅读更多 →

最新新闻

ContextCapture安装避坑指南:版本选择、驱动适配与服务配置

ContextCapture安装避坑指南:版本选择、驱动适配与服务配置

简介:本资源提供ContextCapture软件的官方可用下载地址及配套获取指引,面向测绘、三维建模、BIM与数字孪生领域的工程师、高校师生及GIS从业者,解决正版软件获取渠道不明确、网盘链接失效或安装路径不明等实际问题。压缩包仅2KB,含…

2026/10/20 20:02:01 阅读更多 →
OCR模型训练数据不够?用数据生成工具批量造数据实战

OCR模型训练数据不够?用数据生成工具批量造数据实战

OCR模型训练最头疼的从来不是网络结构设计,而是标注数据不够。我做过好几个文字识别项目,每次卡在瓶颈上的几乎都是同一件事:真实场景的样本太少,标注成本太高,模型在测试集上看着还行,一上真实业务就崩。后…

2026/10/20 20:02:01 阅读更多 →
从调API到懂原理:大模型工程实践中的Token、注意力与解码策略

从调API到懂原理:大模型工程实践中的Token、注意力与解码策略

1. 为什么“会调 API”和“懂原理”之间隔着一道鸿沟1.1 从一次线上事故说起去年冬天,我接手了一个基于大模型 API 的智能问答项目。项目本身不复杂:用户提问,后端拼装提示词,调用模型接口,返回答案。团队里两个刚毕业…

2026/10/20 20:02:01 阅读更多 →
VS2019中直接使用wxWidgets二进制文件的工程化实践

VS2019中直接使用wxWidgets二进制文件的工程化实践

1. 项目概述:为什么“直接使用二进制文件”是wxWidgets在VS2019中落地的关键突破口在Windows桌面应用开发圈里,wxWidgets一直是个“熟悉又陌生”的存在——熟悉,是因为它跨平台、开源、C原生、社区稳定;陌生,是因为从官…

2026/10/20 20:02:01 阅读更多 →
贝叶斯非负奖励模型BNRM:稳定RLHF奖励建模的新思路

贝叶斯非负奖励模型BNRM:稳定RLHF奖励建模的新思路

做RLHF做到第三个月的时候,我彻底对“奖励模型”这四个字失去了安全感。当时用的标准奖励模型在验证集上的偏好分类准确率已经刷到了很不错的水平,可一旦接到策略优化里,模型就开始疯狂输出那种“看起来很有道理、读起来全是空话”的内容——…

2026/10/20 20:02:01 阅读更多 →
SSM+Vue考研助手毕业设计全栈开发实战:从院校库到刷题闭环

SSM+Vue考研助手毕业设计全栈开发实战:从院校库到刷题闭环

1. 内容整体设计与思路拆解1.1 这个项目到底解决什么问题2026届毕业设计选“ssmvue考研助手”这个题目的同学不少,但很多人在开题阶段就把路走窄了——以为做个CRUD管理系统就交差。实际上这套题目能承载的东西非常多,关键在于你怎么定义“助手”两个字。…

2026/10/20 20:01:00 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →