怎么把网站上传到域名/成都网络营销公司排名

怎么把网站上传到域名,成都网络营销公司排名,iss怎么做网站,邯郸信息港发布信息一、三种数据库的对比 MongoDB、MySQL 和 Redis 是三种不同类型的数据库系统,它们在数据模型、存储方式、性能特点、适用场景等方面存在显著区别。以下是它们的详细对比: 1. 数据模型 MySQL 类型:RDBMS(关系型数据库&#xff0…

一、三种数据库的对比

MongoDB、MySQL 和 Redis 是三种不同类型的数据库系统,它们在数据模型、存储方式、性能特点、适用场景等方面存在显著区别。以下是它们的详细对比:

1. 数据模型

MySQL
  • 类型:RDBMS(关系型数据库)

  • 数据模型:以表格的形式存储数据,数据以行和列的形式组织,每行代表一条记录,每列代表一个属性。表之间可以通过外键等机制建立关系。

  • 特点:需要预先定义表结构,包括字段名、字段类型、字段长度等,数据结构固定。

MongoDB
  • 类型:NoSQL(文档型数据库)

  • 数据模型:以文档的形式存储数据,每个文档是一个键值对集合,类似于 JSON 格式。文档存储在集合(Collection)中,集合类似于关系型数据库中的表。

  • 特点:不需要预先定义固定的表结构,文档可以有不同的字段和结构,非常灵活。

Redis
  • 类型:NoSQL(键值存储数据库)

  • 数据模型:以键值对的形式存储数据,支持多种数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等。

  • 特点:数据存储在内存中,读写速度极快,适合高并发场景。

2. 存储方式

MongoDB
  • 存储位置:数据存储在磁盘上,支持多种存储引擎(如 WiredTiger、MMAPv1 等)。

  • 持久化:支持持久化存储,数据不会因服务重启而丢失。

  • 适用场景:适合存储半结构化或非结构化数据,如日志数据、用户画像数据等。

MySQL
  • 存储位置:数据存储在磁盘上,支持多种存储引擎(如 InnoDB、MyISAM 等)。

  • 持久化:支持持久化存储,数据不会因服务重启而丢失。

  • 适用场景:适合存储结构化数据,如用户信息表、订单表等,数据之间的关系可以通过外键等机制来维护。

Redis
  • 存储位置:数据存储在内存中,支持 RDB(快照)和 AOF(追加文件)两种持久化机制。

  • 持久化:虽然数据存储在内存中,但通过 RDB 和 AOF 持久化机制可以将数据定期保存到磁盘上,确保数据的持久性。

  • 适用场景:适合高并发、低延迟的场景,如缓存、会话存储、消息队列等。

3. 性能特点

MongoDB
  • 读写性能:读写性能较好,尤其是在处理海量数据和高并发场景时表现出色。

  • 扩展性:支持水平扩展,可以通过分片(Sharding)将数据分布到多个服务器上,提高系统的性能和容量。

  • 事务支持:MongoDB 4.0 及以上版本引入了多文档事务,但其事务机制与 MySQL 的事务有所不同。

MySQL
  • 读写性能:在处理关系复杂、事务性强的业务时性能较好,能够保证数据的完整性和一致性。

  • 扩展性:支持垂直扩展(增加服务器性能)和水平扩展(如 MySQL Cluster),但水平扩展的复杂性较高。

  • 事务支持:支持 ACID(原子性、一致性、隔离性、持久性)事务,适合需要事务保证的场景。

Redis
  • 读写性能:读写速度极快,通常可以达到微秒级,适合高并发、低延迟的场景。

  • 扩展性:支持主从复制、哨兵系统和集群,可以通过增加更多的内存和服务器节点来实现水平扩展。

  • 事务支持:支持事务,但事务的执行是原子性的,不会回滚。

4. 适用场景

MongoDB
  • 适用场景

    • 存储半结构化或非结构化数据,如日志数据、用户画像数据等。

    • 需要快速开发和迭代的场景,数据结构可能频繁变化。

    • 处理海量数据和高并发的场景,如社交媒体应用、物联网应用等。

MySQL
  • 适用场景

    • 存储结构化数据,如用户信息表、订单表等。

    • 需要事务支持和数据一致性的场景,如金融系统、电子商务系统等。

    • 需要复杂查询和分析的场景,如数据分析和报表生成。

Redis
  • 适用场景

    • 缓存热点数据,减少对后端数据库的访问压力。

    • 存储会话信息,如用户登录状态。

    • 实现消息队列,支持高并发的生产者和消费者。

    • 实时数据处理,如排行榜、计数器等。

5. 其他特点

MongoDB
  • 社区和生态:拥有庞大的社区和丰富的生态系统,有大量的学习资源和工具。

  • 成本:社区版开源免费,企业版需要付费购买。

MySQL
  • 社区和生态:作为传统的数据库系统,拥有庞大的用户群体和丰富的生态系统,有大量的学习资源、工具和社区支持。

  • 成本:社区版开源免费,企业版需要付费购买。

Redis
  • 社区和生态:拥有活跃的社区和丰富的生态系统,有大量的学习资源和工具。

  • 成本:开源免费,适合各种规模的应用。

总结

  • MongoDB:适合存储半结构化或非结构化数据,支持灵活的数据模型和水平扩展,适合高并发和海量数据场景。

  • MySQL:适合存储结构化数据,支持事务和复杂查询,适合需要数据一致性和复杂分析的场景。

  • Redis:适合高并发、低延迟的场景,支持多种数据结构,适合缓存、会话存储和消息队列等场景。

二、详述MongoDB

1、NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写。NoSQL用于超大规模数据的存储

2、管理工具下载:

MongoDB Compass是什么? - MongoDB Compass - MongoDB Docs

4、常用的 MongoDB 语句

以下是常用的 MongoDB 语句,按功能分类整理:

4.1 数据库操作

  • 查看当前数据库db

  • 列出所有数据库show dbsshow databases

  • 切换数据库use <database>,如果数据库不存在,插入数据时会自动创建

  • 删除当前数据库db.dropDatabase()

4.2 集合操作

  • 创建集合db.createCollection("collection_name"),通常使用隐式创建即可,即插入数据时自动创建集合

  • 查看当前数据库中的集合show collectionsshow tables

  • 删除集合db.collection.drop()

4.3 文档操作

4.3.1 插入文档
  • 插入单个文档db.collection.insertOne({key:value})

  • 插入多个文档db.collection.insertMany([{key:value}, {key:value}])

  • 插入单条或多条文档db.collection.insert({key:value})db.collection.insert([{key:value}, {key:value}])

4.3.2 查询文档
  • 查询所有文档db.collection.find()

  • 查询指定条件的文档db.collection.find({key:value})

  • 查询并限制返回的字段db.collection.find({}, {key:1, key:0})

  • 格式化查看查询结果db.collection.find().pretty()

  • 查询并排序db.collection.find().sort({key:1})

  • 查询并限制返回的文档数量db.collection.find().limit(10)

  • 查询并跳过指定数量的文档db.collection.find().skip(5)

  • 使用条件运算符查询

    • 大于:db.collection.find({key:{$gt:value}})

    • 小于:db.collection.find({key:{$lt:value}})

    • 等于:db.collection.find({key:value})

    • 不等于:db.collection.find({key:{$ne:value}})

    • in:db.collection.find({key:{$in:[value1, value2]}})

    • not in:db.collection.find({key:{$nin:[value1, value2]}})

  • 使用正则表达式查询db.collection.find({key:{$regex:"pattern"}})

  • 联合查询db.collection.find({key1:value1, key2:value2})

4.3.3 更新文档
  • 更新单个文档db.collection.updateOne({query}, {$set:{key:value}})

  • 更新多个文档db.collection.updateMany({query}, {$set:{key:value}})

  • 替换单个文档db.collection.replaceOne({query}, {newKey:newValue})

  • 默认更新一个文档,可配置 multi 参数更新多个文档db.collection.update({query}, {update}, {multi:true})

  • 使用 upsert 参数在查询为空时插入文档db.collection.update({query}, {update}, {upsert:true})

4.3.4删除文档
  • 删除单个文档db.collection.deleteOne({query})

  • 删除多个文档db.collection.deleteMany({query})

4.4 索引操作

  • 创建索引db.collection.createIndex({key:1})

  • 查看索引db.collection.getIndexes()

  • 删除索引db.collection.dropIndex("index_name")

4.5 其他操作

  • 统计集合中的文档数量db.collection.count()

  • 查看集合的统计信息db.collection.stats()

  • 查看数据库的统计信息db.stats()

  • 查看服务器状态db.serverStatus()

这些语句涵盖了 MongoDB 的基本操作,包括数据库、集合和文档的增删改查等

三、详述Redis

1、什么是Redis:

REmote DIctionary Server(远程字典服务)Redis, 是一个基于内存的key-value 存储数据库,是跨平台的非关系型数据库。

Redis 基于内存设计的主要原因是内存的高性能和低延迟特性,这使得 Redis 能够快速读写数据,满足高并发和实时处理的需求

2、Redis的值

支持多种数据结构, 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)--散列、列表(list)、集合(sets)和有序集合(sorted sets)等类型。

3、Redis常用场景:

适用于需要快速响应和高并发处理的场景:

  • 缓存:通过内存存储热点数据,加速数据访问,减少对后端数据库的访问压力。

  • 会话存储:存储用户会话信息,快速读取和更新用户状态

  • 消息队列:使用列表或发布/订阅模式实现消息队列。快速处理消息,支持高并发的生产者和消费者

  • 分布式锁:利用 Redis 的原子操作实现锁机制。

  • 排行榜和计数器:使用有序集合实现排行榜功能。

4. (操作键)基本命令

常用的 Redis 命令:

  • 设置键值对

    SET mykey "Hello, Redis!"
  • 获取键值对

    GET mykey
  • 删除键值对

    DEL mykey
  • 设置过期时间

    EXPIRE mykey 60  # 设置 mykey 的过期时间为 60 秒
  • 查看所有键

    KEYS *
  • 查看键的类型

    TYPE mykey

5. 对值(数据结构)操作

Redis 支持多种数据结构,包括字符串、哈希、列表、集合和有序集合。

对值的操作,主要就是获取和设置

  • 字符串(String)

    SET mykey "value"
    GET mykey
  • 哈希(Hash)

    HSET user:1001 name "Alice" age 25
    HGETALL user:1001
  • 列表(List)

    LPUSH tasks "task1"
    LPUSH tasks "task2"
    LPOP tasks
  • 集合(Set)

    SADD tags "Redis" "Database"
    SMEMBERS tags
  • 有序集合(Sorted Set)

    ZADD leaderboard 100 "player1"
    ZADD leaderboard 150 "player2"
    ZRANGE leaderboard 0 -1 WITHSCORES

6. 持久化机制

持久化机制,Redis 可以在服务重启后快速恢复数据,确保数据的完整性和一致性。

Redis 的持久化机制是指将内存中的数据保存到磁盘上,以便在 Redis 服务重启后能够恢复数据。
由于 Redis 是基于内存的数据库,数据存储在内存中,一旦服务重启或发生故障,内存中的数据会丢失。
因此,持久化机制对于保证数据的持久性和可靠性至关重要

持两种持久化方式:

  • RDB(快照):在指定时间间隔内生成数据快照,适合数据不频繁变化的场景。

    ​
    RDB (Redis DataBase)是通过快照的方式将内存中的数据以二进制格式写入磁盘文件。
    默认情况下,RDB 持久化是开启的。1)配置 RDB 持久化
    在 Redis 的配置文件 redis.conf 中,可以通过以下配置项来设置 RDB 持久化:save <seconds> <changes><seconds>:表示在指定的时间间隔内。
    <changes>:表示发生了多少次写操作。例如:save 900 1          # 900秒内至少有1次写操作时,进行一次快照
    save 300 10         # 300秒内至少有10次写操作时,进行一次快照
    save 60 10000       # 60秒内至少有10000次写操作时,进行一次快照2)如果要关闭 RDB 持久化,
    可以将 save 参数列表清空,或者直接注释掉所有 save 行:save ""

  • AOF(追加文件):记录每次的写操作,适合需要更高数据一致性的场景。

    AOF 是通过记录每次写操作的命令来实现持久化,这些命令会被追加到一个文件中。
    AOF 持久化可以提供更好的数据安全性,但会占用更多的磁盘空间。1)配置 AOF 持久化
    在 redis.conf 文件中,可以通过以下配置项来设置 AOF 持久化:appendonly yesyes:启用 AOF 持久化。
    no:禁用 AOF 持久化。2)AOF 的写入策略可以通过以下配置项设置:appendfsync alwaysalways:每次写操作都会同步到磁盘,最安全但性能最低。
    everysec:每秒同步一次,性能较好,但可能会丢失一秒内的数据。
    no:不自动同步,由操作系统决定何时同步。
  • 混合持久化

    混合持久化是 Redis 4.0 之后新增的一种持久化方式,结合了 RDB 和 AOF 的优点。
    在文件开头以 RDB 的形式保存数据,然后追加后续的写操作命令。1) 配置混合持久化
    在 redis.conf 文件中,可以通过以下配置项来启用混合持久化:rdb-aof-use-rdb-preamble yesyes:启用混合持久化。
    no:禁用混合持久化。2) 关闭持久化
    如果需要关闭 Redis 的持久化功能,需要同时关闭 RDB 和 AOF 持久化:2.1)关闭 RDB 持久化:save ""2.2)关闭 AOF 持久化:appendonly no2.3)关闭混合持久化:rdb-aof-use-rdb-preamble no关闭持久化后,需要重启 Redis 服务才能生效。

7. 高可用架构

Redis 提供主从复制和哨兵模式,确保系统的高可用性:

  • 主从复制:主节点负责写入操作,从节点负责读取操作。

  • 哨兵模式:通过哨兵监控多个 Redis 实例,自动进行故障转移。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/899529.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《Express:Node.js 里的 “闪电侠”》

“你就坐在我身边&#xff0c;好不好” 什么是Express 官方给出的概念&#xff1a;Express 是基于 Node.js 平台&#xff0c;快速、开放、极简的 Web 开发框架。 通俗的理解&#xff1a;Express 的作用和 Node.js 内置的 http 模块类似&#xff0c;是专门用来创建 Web 服务器…

vue遗漏的知识点(动态组件.组件库的操作使用)

----动态组件&#xff08;vue2vue3通用&#xff09; <component :is"..."> 的作用 <component> 是 Vue 的内置组件&#xff0c;用于动态渲染其他组件。:is 属性 用于指定要渲染的组件。它的值可以是&#xff1a; 组件的名称&#xff08;字符串&#xf…

vue 项目启动报错可以让 cursor启动

vue 项目启动报错可以让 cursor启动

Vue3当中el-tree树形控件使用

tree悬停tooltip效果 文本过长超出展示省略号 如果文本超出悬停显示tooltip效果 反之不显示 这里直接控制固定宽度限制 试了监听宽度没效果<template><el-treeshow-checkbox:check-strictly"true":data"data"node-key"id":props"…

PDF处理控件Aspose.PDF教程:通过C#、Java 和 Python删除 PDF中的水印

Aspose.PDF 是一个功能强大的库&#xff0c;旨在以编程方式处理 PDF 文档&#xff0c;提供创建、编辑、转换和操作的广泛功能。它支持 C#、Java 和 Python 等多种编程语言&#xff0c;使开发人员能够精确高效地自动处理 PDF。 对于开发人员来说&#xff0c;由于自动化和定制化…

基于STC89C51的太阳自动跟踪系统的设计与实现—单片机控制步进电机实现太阳跟踪控制(仿真+程序+原理图+PCB+文档)

摘 要 随着我国经济的飞速发展&#xff0c;促使各种能源使用入不敷出&#xff0c;尤其是最主要的能源&#xff0c;煤炭石油资源不断消耗与短缺&#xff0c;因此人类寻找其他替代能源的脚步正在加快。而太阳能则具有无污染﹑可再生﹑储量大等优点&#xff0c;且分布范围广&…

【硬件测试】基于FPGA的16QAM+帧同步系统开发与硬件片内测试,包含高斯信道,误码统计,可设置SNR

目录 1.算法硬件测试效果 2.算法涉及理论知识概要 2.1 16QAM调制解调原理 2.2 帧同步 3.Verilog核心程序 4.开发板使用说明和如何移植不同的开发板 5.完整算法代码文件获得 1.算法硬件测试效果 本文是之前写的文章: 《基于FPGA的16QAM帧同步系统verilog开发,包含testb…

多路径 TCP 调度的另一面

参考前面的文章 一个原教旨的多路径 TCP 和 MP-BBR 公平性推演&#xff0c;一直都破而不立&#xff0c;不能光说怎样不好&#xff0c;还得说说现状情况下&#xff0c;该如何是好。 如果 receiver 乱序重排的能力有限(拜 TCP 所赐)&#xff0c;如果非要在多路径上传输 TCP&…

大数据学习(92)-spark详解

&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一…

RAG - 五大文档切分策略深度解析

文章目录 切分策略1. 固定大小分割&#xff08;Fixed-Size Chunking&#xff09;2. 滑动窗口分割&#xff08;Sliding Window Chunking&#xff09;3. 自然语言单元分割&#xff08;Sentence/Paragraph Segmentation&#xff09;4. 语义感知分割&#xff08;Semantic-Aware Seg…

微信小程序引入TDesign组件后报错一直提示路径不对(Component is not found in path)的解决方法

最近在做微信小程序的项目&#xff0c;创建好项目后&#xff0c;按官方方式引入TDesign组件&#xff0c;但还是一直提示报错&#xff08;Component is not found in path "miniprogram_npm/tdesign-miniprogram/button/button" (using by "pages/login/login&qu…

【机械视觉】C#+VisionPro联合编程———【六、visionPro连接工业相机设备】

【机械视觉】C#VisionPro联合编程———【六、visionPro连接工业相机设备】 目录 【机械视觉】C#VisionPro联合编程———【六、visionPro连接工业相机设备】 前言&#xff1a; 连接步骤说明 一. 硬件连接 支持的相机接口类型&#xff1a; 连接步骤 2. 软件配置 Visio…

Kafka 多线程开发消费者实例

目前&#xff0c;计算机的硬件条件已经大大改善&#xff0c;即使是在普通的笔记本电脑上&#xff0c;多核都已经是标配了&#xff0c;更不用说专业的服务器了。如果跑在强劲服务器机器上的应用程序依然是单线程架构&#xff0c;那实在是有点暴殄天物了。不过&#xff0c;Kafka …

zynq7000 + ucos3 + lwip202_v1_2调试过程

1 现在裸机应用上验证lwip 跑起来可能会报错&#xff0c;看下面的链接解决 zynq 网卡Phy setup error问题 zynq 网卡Phy setup error问题-CSDN博客 2 ping同以后&#xff0c;在zynq上添加ucos系统 链接如下&#xff1a; ZYNQ移植uCOSIII_zynq ucos-CSDN博客 3 移植lwip协议…

Android7 Input(二)Linux 驱动层输入事件管理

概述 在Linux系统中&#xff0c;将键盘&#xff0c;鼠标&#xff0c;触摸屏等这类交互设备交由Linux Input子系统进行管理&#xff0c;Linux Input驱动子系统由于具有良好的和用户空间交互的接口。因此Linux Input驱动子系统&#xff0c;不止于只管理输入类型的设备。也可以将其…

mysql.8.4.4--初始化报错--libnuma.so.1缺失

错误 mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory解决办法&#xff1a;下载相关依赖 sudo apt update sudo apt install numactl然后重新初始化 mysqld --initialize

【区块链安全 | 第三篇】主流公链以太坊运行机制

文章目录 1. 以太坊账户类型2. 以太坊网络架构2.1 节点类型2.2 交易流程 3. 共识机制4. Gas 机制4.1 Gas 计算方式4.2 以太坊 EIP-1559 交易机制 5. EVM&#xff08;以太坊虚拟机&#xff09;5.1 EVM 结构5.2 EVM 指令5.3 EVM 运行机制 6. 智能合约7. ERC 代币标准7.1 ERC-207.…

【Goalng】第九弹-----文件操作、JSON处理

&#x1f381;个人主页&#xff1a;星云爱编程 &#x1f50d;所属专栏&#xff1a;【Go】 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 长风破浪会有时&#xff0c;直挂云帆济沧海 目录 1.文件操作 1.1文件介绍 1.2.文件流 1.3.打开和关闭文件 1…

猜猜我用的是哪个大模型?我的世界游戏界面简单的模拟效果

我的罗里吧嗦的&#xff0c;根据小朋友的要求&#xff0c;边听边写边输入的提示词&#xff1a; 请生成一段完整的在网页中用html5和javascript代码模拟“我的世界”中游戏场景的互动画面&#xff0c;要求提供若干人物选项可以选择&#xff0c;请自行选择需要使用哪些库或框架来…

AI知识补全(八):多模态大模型是什么?

名人说&#xff1a;人生如逆旅&#xff0c;我亦是行人。 ——苏轼《临江仙送钱穆父》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 上一篇&#xff1a;AI知识补全&#xff08;七&#xff09;&#xff1a;AI Agent 智能…