简单了解Redis(初识阶段)

1.认识Redis

对于Redis有一个很重要的点就是,它存储数据是在内存中存储的。

但是对于单机程序,直接通过变量存储数据的方式是更优的,在分布式系统下 Redis才能发挥威力

因为进程是有隔离性的,Redis可以基于网络,把进程自己的内存中的变量给别的进程,甚至是别的主机使用。这是Redis最核心的地方。

Redis可以用作数据库。它相比MySQL要快很多。因为Redis存储数据是内存级的。

但是内存存储快是快,但是劣势也很明显,那就是空间太小了。

往往都是Redis和MySQL结合起来使用。 在互联网上存在一个 二八原则,那就是 20%的热点数据(高频访问的数据),能满足80%的访问需求,那么就只要把这20%用Redis存储,全量数据用MySQL存储。此时Redis就是充当Cache的角色,不过这样就会使得系统的设计变得复杂,并且修改Redis中的数据时,还需考虑Redis和MySQL之间的同步问题。

2.浅谈分布式系统的演变过程

了解单机架构 

 即只有一台服务器,这个服务器负责所有的工作。

 虽然现在的硬件发展速度非常快,单机架构即便只有一台主机,但是这台主机的性能也是可以很高的,但是还是架不住用户量和数据量的水涨船高,单机的性能再高也是有上限的,

一台服务器的核心硬件资源:1.CPU 2.内存 3.硬盘 4.网络 。当然还有其他的。

 什么是分布式?

之前说了单机架构模式, 还有服务器的核心资源。当某一时刻,请求的数量太多了,就可能会导致服务器的某个硬件资源不够用了,无论是哪个方面不够用了,都会导致服务器处理请求的时间变长,甚至出错。

如果碰到这种情况,怎么处理呢?

1.开源:

简单粗暴,直接增加更多的硬件资源来解决性能问题。但是需要注意:一台主机能增加的硬件资源是有限的。比如CPU ,内存条,这些取决于主板的扩展能力。

当一台主机扩展到极限的时候,那么就只能引入多台主机了。而且不是说新的机器买来就可以直接解决问题,还需要在软件上做出对应的调整和适配。当引入了多台主机时,就可以把这个系统称为”分布式系统“了。

不过一般万不得已是不会引入分布式系统的,因为这会使得系统的复杂度大大提高。

2.节流:

节流就是从软件层面上去优化,需要通过性能测试找到性能瓶颈,再找出切实有效的优化方案。这个是比较难的。

数据库分离和负载均衡 

也就是应用服务和数据库服务分离

这里就已经是两个服务器了。 

此时还可以根据服务器业务的不同,针对性的给服务器配置硬件资源,以此达到更高的性价比。

如果一台应用服务器还是不够用的话,那么还可以引入更多的服务器结点:

 

此时用户访问就会先访问负载均衡器 / 网关(也是一个单独的服务器),然后负载均衡器再将请求进行分发。

另外,看似负载均衡器在这里承担了所有的请求,但是负载均衡器是分配任务的,所以它对于请求的承担能力是远超服务器的。就算请求量大到负载均衡也承担不了时,同样可以引入更多的硬件资源,也就是引入更多的负载均衡器(引入更多机房)。

数据库的读写分离

上面说到了应用服务和数据服务分离,这样降低了应用服务的压力,但是数据库服务的压力又上来了,因此为了降低数据库服务的压力又有两种解决办法:

开源和节流。其中节流门槛高,难度大,这里主要说开源。

 这里的核心思想就是读写分离。图中只画了两台服务器,实际上可能是多台。

在实际的应用场景中,读的频率是比写的频率高的,因此主服务器一般只有一个,从服务器有多个
并且从服务器也可以通过负载均衡的方式让应用服务器进行访问。

引入缓存 

数据库有一个天然的问题,因为它是读写硬盘访问的,所以速度是比较慢的。因此可以将数据进项冷热划分,将热数据放到缓存中,这样访问速度就能快很多了。

将热点数据存到缓存服务器中,数据库中存的依旧是完整的全量数据。 

而我们一直说的Redis就处于缓存服务器这个位置。 

数据库分库分表 

引入分布式系统,不光要应对更高的请求量(并发量),还要能够应对更大的数据量(比如短视频平台的数据量就很大)。当数据量多到一台服务器已经存不下的时候,就需要多台主机来存储。 

所以还可以针对数据库再进行水平拆分,这里也叫分库分表

比如本来一个数据库服务器上有多个数据库(指逻辑上的数据集合),现在就引入了多个数据库服务器,每个数据库服务器存储一个或者一部分数据库。 

图中展现的是分库,如果当某张表特别大的时候,也可以对表进行拆分,也就是分表。

引入微服务 

这里针对的就是应用服务器,当应用服务器里的功能太多太复杂了,就可以把它的功能进行拆分,本来是一个服务器,现在拆分了,就叫做微服务。

 

微服务本质上是解决 ”人“的问题。因为当一个应用服务功能越来越多,结构越来越复杂时,就需要更多的人来维护。

 那么就可以按照功能拆分成多组微服务,这样就有利于上述人员的结构组织的分配了。

虽然微服务解决了人的问题,但是它也是付出了代价的:

 

 

概念的补充 

应⽤(Application)/ 系统(System):

为了完成⼀整套服务的⼀个程序或者⼀组相互配合的程序群。

 模块(Module)/ 组件(Component):

 一个应用,里面有很多个功能,每一个独立的功能就可以称为一个模块 / 组件。

当应⽤较复杂时,为了分离职责,将其中具有清晰职责的、内聚性强的部分,抽象出概念,便于
理解。

分布式(Distributed)

系统中的多个模块被部署于不同服务器之上,即可以将该系统称为分布式系统。如 Web 服务器与
数据库分别⼯作在不同的服务器上,或者多台 Web 服务器被分别部署在不同服务器上。⽣活例⼦类⽐:为了更好的满⾜现实需要,⼀个在同⼀个办公场地的⼯作⼩组被分散到多个城市的不同⼯作场地中进⾏远程配合⼯作完成⽬标。跨主机之间的模块之间的通信基本要借助⽹络⽀撑完成。

引入多个主机 / 服务器,协同配合完成一系列的工作 (物理上的多主机)

集群(Cluster)

被部署于多台服务器上的、为了实现特定⽬标的⼀个/组特定的组件,整个整体被称为集群。⽐如
多个 MySQL ⼯作在不同服务器上,共同提供数据库服务⽬标,可以被称为⼀组数据库集群。
分布式 vs 集群。通常不⽤太严格区分两者的细微概念,细究的话,分布式强调的是物理形态,即
⼯作在不同服务器上并且通过⽹络通信配合完成任务;⽽集群更在意逻辑形态,即是否为了完成特定服务⽬标。

引入多个主机 / 服务器,协同配合完成一系列的工作 (逻辑上的多主机)

主(Master)/ 从(Slave) 

集群中,通常有⼀个程序需要承担更多的职责,被称为主;其他承担附属职责的被称为从。⽐如
MySQL 集群中,只有其中⼀台服务器上数据库允许进⾏数据的写⼊(增/删/改),其他数据库的数据修改全部要从这台数据库同步⽽来,则把那台数据库称为主库,其他数据库称为从库。

中间件(Middleware)  

⼀类提供不同应⽤程序⽤于相互通信的软件,即处于不同技术、⼯具和数据库之间的桥梁。⽣活
例⼦类⽐:⼀家饭店开始时,会每天去市场挑选买菜,但随着饭店业务量变⼤,成⽴⼀个采购部,由采购部专职于采买业务,称为厨房和菜市场之间的桥梁。

中间件一般是和业务无关的服务:

 1.数据库

2.缓存

3.消息队列(是生产者消费模型)

4...

评价指标(Metric):
1.可⽤性(Availability)
考察单位时间段内,系统可以正常提供服务的概率/期望。例如: 年化系统可⽤性 = 系统正常提供
服务时⻓ / ⼀年总时⻓。
平时我们常说的 4 个 9 即系统可以提供 99.99% 的可⽤性,5 个 9 是 99.999% 的可⽤性,以此类推。 我们平时只是⽤⾼可⽤(High Availability HA)这个⾮量化⽬标简要表达我们系统的追求。

响应时⻓(Response Time RT) 

指⽤⼾完成输⼊到系统给出⽤⼾反应的时⻓。 这个指标越小越好

吞吐(Throughput)vs 并发(Concurrent) 

吞吐考察单位时间段内,系统可以成功处理的请求的数量。并发指系统同⼀时刻⽀持的请求最⾼
量。例如⼀条辆⻋道⾼速公路,⼀分钟可以通过 20 辆⻋,则并发是 2,⼀分钟的吞吐量是 20。实践中,并发量往往⽆法直接获取,很多时候都是⽤极短的时间段(⽐如 1 秒)的吞吐量做代替。我们平时⽤⾼并发(Hight Concurrnet)这个⾮量化⽬标简要表达系统的追求。

通常用响应时长和吞吐&&并发来衡量服务器性能,但是它们衡量的角度是不一样的。 

分布式系统 小结:

 大致过程:

1.单机架构 ->

2.数据库和应用分离 ->

3.引入负载均衡  应用服务器 => 集群 ->

4.引入读写分离,数据库主从结构 ->

5.引入缓存,冷热数据分离 ->

6.引入分库分表,数据库能进一步扩展空间 ->

7.引入微服务,从业务上进一步拆分应用服务器

3.Rdies的一些特性介绍(优点) 

Redis特性介绍 

Redis是内存中存储数据的中间件,它作为数据库,作为数据缓存之所以能在分布式系统中大展拳脚是因为它的一些特性(优点)

1.数据在内存中存储的->速度快:

 2.基于键值对的数据结构服务器

⼏乎所有的编程语⾔都提供了类似字典的功能,例如 C++ ⾥的 map、Java ⾥的 map、Python ⾥
的 dict 等,类似于这种组织数据的⽅式叫做基于键值对的⽅式,与很多键值对数据库不同的是,
Redis 中的值不仅可以是字符串,⽽且还可以是具体的数据结构,这样不仅能便于在许多应⽤场景的开发,同时也能提⾼开发效率。Redis 的全程是 REmote Dictionary Server,它主要提供了 5 种数据结构:字符串(string)、哈希(hash)、列表(list)、集合(set)、有序集合(ordered set /zet),同时在字符串的基础之上演变出了位图(Bitmaps)和 HyperLogLog 两种神奇的 ”数据结构“,并且随着 LBS(Location Based Service,基于位置服务)的不断发展,Redis 3.2. 版本种加⼊有关 GEO(地理信息定位)的功能,总之在这些数据结构的帮助下,开发者可以开发出各种 “有意思” 的应⽤。

3.有丰富的功能,拓展性强大

除了 5 种数据结构,Redis 还提供了许多额外的功能:
提供了键过期功能,可以⽤来实现缓存。
提供了发布订阅功能,可以⽤来实现消息系统。
⽀持 Lua 脚本功能,可以利⽤ Lua 创造出新的 Redis 命令。
提供了简单的事务功能,能在⼀定程度上保证事务特性。
提供了流⽔线(Pipeline)功能,这样客⼾端能将⼀批命令⼀次性传到 Redis,减少了⽹络的开
销。

 比如我们可以自己用C++代码去拓展Redis的功能。

 4.简单稳定

其次,Redis 使⽤单线程模型,
这样不仅使得 Redis 服务端处理模型变得简单,⽽且也使得客⼾端开发变得简单。最后,Redis 不需要依赖于操作系统中的类库(例如 Memcache 需要依赖 libevent 这样的系统类库),Redis ⾃⼰实现了事件处理的相关功能。
但与简单相对的是 Redis 具备相当的稳定性,在⼤量使⽤过程中,很少出现因为 Redis ⾃⾝ BUG
⽽导致宕掉的情况。

 5.客户端语言多

C、C++、Java、PHP、Python、NodeJS 等。
6.持久化(Persistence)

通常看,将数据放在内存中是不安全的,⼀旦发⽣断电或者机器故障,重要的数据可能就会丢
失,因此 Redis 提供了两种持久化⽅式:RDB 和 AOF,即可以⽤两种策略将内存的数据保存到硬盘中。

 7.高可用性(High Availability)

假设主节点挂掉了,那么从结点可以立马顶上,不至于让整个服务直接宕机 。

Redis为什么快呢? 

 1.Redis数据在内存中,那就比访问硬盘的数据库要快很多。

2.Redis核心功能都是比较简单的逻辑

3.从网络角度上来说,Redis使用了IO多路复用

4.Redis使用的是单线程模型(虽然高版本Redis引入多线程,但是是对网络部分的),

这样减少了不必要的线程之间的竞争开销。

注意:多线程提高效率的前提是 CPU密集型的任务,并且能使多个线程可以充分利用CPU的多核资源。但是Redis的核心任务主要就是操作内存的数据结构。

5.Redis是用C语言开发的,所以快。不过需要注意,这里的快是指跟其他语言相比起来,用C语言快,而不能跟MySQL比,因为MySQL也是C语言开发的,而之所以会引入Redis就是因为MySQL慢。

4.Redis的应用场景 

1.作为数据库

虽然在大多数情况下,数据库存储优先考虑的是 “大”,但是还是有一些场景下考虑的是 “快”。因为Redis的最大特点就是快,所以Redis就可以满足 考虑 “快”的场景下的要求。不过此时Redis存储的就是全量数据了,此时的数据可不能丢失。

2.作为缓存 && 会话存储

作为缓存我们之前也谈到过,因为在互联网的数据访问遵循二八原则,所以我们可以把热数据放在 缓存也就是Redis中,全量数据依旧放在MySQL这样的数据库中。此时Redis的数据有丢失也不要紧,丢失了可以从MySQL中再加载回来。

那么会话存储又是什么呢?
我们之前学过Cookie,而Cookie是和session搭配使用的。

假设在一个分布式系统下

有一个用户发起了登录请求,这个请求经过负载均衡器转发到应用服务器上,然后应用服务器就会生成一个会话,并给用户返回了这个会话的id,保存了用户的登录信息,那么用户 下次就只要拿着合法的会话id就直接登录了。

那么此时又有一个问题:因为请求是要先经过负载均衡器的,而会话是形成在一个应用服务器上的,其他的应用服务器没有,那么当用户又发来一个请求时,它不一定会被转发到之前的那个服务器,就导致用户需要再登录一次,如果用户运气不好每个请求都要登录,那就有点反人类了。于是有两种解决方法:

1.想办法让负载均衡器把同一个用户的请求始终打到同一台机器上。

2.直接把会话数据单独拎出来,放到一组独立的机器上存储,也就是用Redis,所以这就是Redis 应用在会话存储上。

3.作为消息队列 

这里的消息队列不是Linux进程通信的消息队列。

那么Redis不能用于什么场景了,这已经显而易见了:
Redis不能用于大规模存储(太贵了)。 

5.Redis环境搭建

这里以Redis 5为例。 

Ubuntu下安装 

在root用户下执行

apt install redis

 一般下载好它会自己启动

可以查看一下

netstat -nltp | grep redis

关于redis的配置文件 ,在 /etc/redis 目录下:

cd /etc/redis

 

 vim打开后发现这里的bind绑定的是本地环回

这样只能本地客户端才能连接这个服务器,我们要将其修改成为  0.0.0.0  。 

还有这里的关于主机保护,为方便今后能跨主机访问,我们给yes 修改为 no

修改完之后,记得要重启服务器。

service redis-server restart

 执行

service redis-server status

可以查看服务的运行状态

在本机执行

redis-cli

 如果想验证是否联通了,可以输入ping,如果返回了一个 PONG 则说明联通了

使用 ctrl + d 来退出redis客户端

Redis客户端介绍 

首先我们要知道,Redis是一个 客户端-服务器结构的程序,这一点和MySQL是一样的。

Redis的客户端有多种形式:

1.自带命令行客户端。

另外 在这里登录时我们可以指明 ip地址和端口号进行登录。

2.图形化界面的客户端

不是很推荐,因为不稳定

 3.基于redis的api自行开发的客户端 (工作常见)

补充:

关于Redis的速度快,是相对于MySQL这样的关系型数据库的,如果直接和内存中的操作变量相比,就没有优势了,甚至更慢了。

举例:
一个单机系统,用hashmap存储了一些简单的数据,此时对于是否要引入Redis,是要结合实际应用场景的,这里举例引入后的优缺点:

缺点:

一:系统变得复杂。

二:hashmap是直接操作内存的,而Redis是要先通过网络,再操作内存的,速度反而会下降。

优点:

一:有了Redis后,数据可以单独存储,如果服务器重启了也不会影响到数据,持久化了。

二:未来如果要扩展成分布式系统,那么用Redis要更佳。

所以综上,对于是否要引入一个技术(Redis),不仅要想清楚能解决什么问题,还得想明白会引来什么新的问题。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CentOS 7 YUM源不可用

CentOS 7 操作系统在2024年6月30日后将停止官方维护,并且官方提供的YUM源将不再可用。 修改:nano /etc/yum.repos.d/CentOS-Base.repo # CentOS-Base.repo [base] nameCentOS-$releasever - Base baseurlhttp://mirrors.aliyun.com/centos/$rel…

前端——flex布局

flex布局——弹性布局 传统布局: 浮动 定位 行内块等 1. flex布局 方法简单 不需要计算 能自动分配父级里面的子元素排版 对齐方式等等 >flex布局 可以适应不同屏幕布局 2. flex布局使用 - 给父级盒子 display: flex 开启弹性盒模型 - 子元素就会默…

html中为div添加展开与收起功能2(div隐藏与显示)

效果图&#xff1a; 1、单个隐藏div项 html布局 <div class"question-detail active"><div class"item-handle"><span class"btn-detail">作答详情 <i class"layui-icon layui-icon-down layui-font-12"><…

数据分析师之Excel学习

前言 excel作为职场人来说&#xff0c;已经是人人必备的技能了&#xff0c;所以还不知道这个的小伙伴&#xff0c;一定要抓紧时间学习&#xff0c;紧跟时代的步伐。 Excel 几个重要的版本 97-2003版本是国内最早流行的版本 .xlsx后缀的表格文件&#xff0c;基本是07版本及…

【数据结构】Java的HashMap 和 HashSet 大全笔记,写算法用到的时候翻一下,百度都省了!(实践篇)

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…

1.随机事件与概率

第一章 随机时间与概率 1. 随机事件及其运算 1.1 随机现象 ​ 确定性现象&#xff1a;只有一个结果的现象 ​ 确定性现象&#xff1a;结果不止一个&#xff0c;且哪一个结果出现&#xff0c;人们事先并不知道 1.2 样本空间 ​ 样本空间&#xff1a;随机现象的一切可能基本…

什么是智慧党建?可视化大屏如何推动高质量党建?

在数字化时代&#xff0c;党建工作迎来了新的发展机遇。智慧党建&#xff0c;作为新时代党建工作的创新模式&#xff0c;正逐渐成为推动党的建设向高质量发展的重要力量。它不仅改变了传统的党建工作方式&#xff0c;还通过现代信息技术的应用&#xff0c;提升了党建工作的效率…

【CSS】鼠标 、轮廓线 、 滤镜 、 堆叠层级

cursor 鼠标outline 轮廓线filter 滤镜z-index 堆叠层级 cursor 鼠标 值说明值说明crosshair十字准线s-resize向下改变大小pointer \ hand手形e-resize向右改变大小wait表或沙漏w-resize向左改变大小help问号或气球ne-resize向上右改变大小no-drop无法释放nw-resize向上左改变…

AI绘画Stable Diffusion 自制素材工具: layerdiffusion插件—你的透明背景图片生成工具

大家好&#xff0c;我是灵魂画师向阳 今天给大家分享一款AI绘画的神级插件—LayerDiffusion。 Layerdiffusion是一个用于stable-diffusion-webui 的透明背景生成&#xff08;不是生成图再工具扣图&#xff0c;是直接生成透明背景透明图像&#xff09;插件扩展&#xff0c;它可…

Java笔试面试题AI答之设计模式(2)

文章目录 6. 什么是单例模式&#xff0c;以及他解决的问题&#xff0c;应用的环境 &#xff1f;解决的问题应用的环境实现方式 7. 什么是工厂模式&#xff0c;以及他解决的问题&#xff0c;应用的环境 &#xff1f;工厂模式简述工厂模式解决的问题工厂模式的应用环境工厂模式的…

音乐服务器测试报告

项目背景 该音乐服务器系统使用的是前后端分离的方式来实现,将相关数据存储到数据库中, 且将其部署到云服务器上. 前端主要构成部分有: 登录页面, 列表页面, 喜欢页面, 添加歌曲4个页面组成. 通过结合后端实现了主要的功能: 登录, 播放音乐, 添加音乐, 收藏音乐, 删除音乐, 删…

vscode 配置django

创建运行环境 使用pip安装Django&#xff1a;pip install django。 创建一个新的Django项目&#xff1a;django-admin startproject myproject。 打开VSCode&#xff0c;并在项目文件夹中打开终端。 在VSCode中安装Python扩展&#xff08;如果尚未安装&#xff09;。 在项…

MySQL InnoDB MVCC读写逻辑分析与调测

目标 1、构建MVCC读写场景 2、gdb调试MVCC过程&#xff0c;输出流程图&#xff08;函数级别调用过程&#xff09; 前提 准备1 打开服务端 查询mysqld进程号 线程树 打开客户端&#xff0c;想创建几个事务号就打开几个客户端 准备2 数据库mvcc&#xff0c;两个表test和stu…

Spring Boot框架在甘肃非遗文化网站设计中的运用

3 系统分析 当用户确定开发一款程序时&#xff0c;是需要遵循下面的顺序进行工作&#xff0c;概括为&#xff1a;系统分析–>系统设计–>系统开发–>系统测试&#xff0c;无论这个过程是否有变更或者迭代&#xff0c;都是按照这样的顺序开展工作的。系统分析就是分析系…

数据库——sql语言学习 查找语句

一、什么是sql SQL是结构化查询语言&#xff08;Structured Query Language&#xff09;的缩写&#xff0c;它是一种专门为数据库设计的操作命令集&#xff0c;用于管理关系数据库管理系统&#xff08;RDBMS&#xff09;。 二、查找相关语句 ‌‌首先&#xff0c;我们已经设…

【洛谷】P10417 [蓝桥杯 2023 国 A] 第 K 小的和 的题解

【洛谷】P10417 [蓝桥杯 2023 国 A] 第 K 小的和 的题解 题目传送门 题解 CSP-S1 补全程序&#xff0c;致敬全 A 的答案&#xff0c;和神奇的预言家。 写一下这篇的题解说不定能加 CSP 2024 的 RP 首先看到 k k k 这么大的一个常数&#xff0c;就想到了二分。然后写一个判…

Unity 设计模式 之 创建型模式 -【单例模式】【原型模式】 【建造者模式】

Unity 设计模式 之 创建型模式 -【单例模式】【原型模式】 【建造者模式】 目录 Unity 设计模式 之 创建型模式 -【单例模式】【原型模式】 【建造者模式】 一、简单介绍 二、单例模式 (Singleton Pattern) 1、什么时候使用单例模式 2、单例模式的好处 3、使用单例模式的…

sheng的学习笔记-logback

基础知识 什么是logback Logback是一个用于Java应用程序的日志框架&#xff0c;提供了更好的性能、可扩展性和灵活性。 与Log4j相比&#xff0c;Logback提供了更快的速度和更低的内存占用&#xff0c;这使得它成为大型企业级应用程序的理想选择。 ‌logback和slf4j的关系是…

Hadoop安装与配置

一、Hadoop安装与配置 1、解压Hadoop安装包 找到hadoop-2.6.0.tar.gz,将其复到master0节点的”/home/csu”目录内&#xff0c;解压hadoop [csumaster0 ~]$ tar -zxvf ~/hadoop-2.6.0.tar.gz 解压成成功后自动在csu目录下创建hadoop-2.6.0子目录&#xff0c;可以用cd hadoo…

WGS1984快速度确定平面坐标系UTM分带(快速套表、公式计算、软件范围判定)

之前我们介绍了坐标系3带6带快速确定带号及中央经线&#xff08;快速套表、公式计算、软件范围判定&#xff09;就&#xff0c;讲的是CGCS2000 高斯克吕格的投影坐标系。 那还有我们经常用的WGS1984的平面坐标系一般用什么投影呢? 对于全球全国的比如在线地图使用&#xff1a…