博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端开发在工作中用到的工具、软件、库.......------Sesiid
阅读量:4047 次
发布时间:2019-05-24

本文共 17445 字,大约阅读时间需要 58 分钟。

目录

 

 


 

一、visual studio code

 

在2015年4月30日Build 开发者大会上正式宣布了 Visual Studio Code 项目:一个运行于 Mac OS X、和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器。

1、产生背景

这标志着微软公司第一次向开发者们提供了一款真正的跨平台编辑器。 [1] 虽然完整版的 Visual Studio 仍然是只能运行在 Windows 和 macOS(Mac OS X )之上,但是这一次的声明向我们展示了微软公司对于支持其他计算机平台的承诺。 [2]

2、发展历程

“很多人都使用作为他们的开发环境,但是我们也注意到了,还有很多人使用 Linux 和 Mac“,Somasegar,微软公司的开发者事业部总裁在这周稍早时候对笔者如是说道。”我们想让他们能够在他们习惯的平台上使用我们公司的产品,而不是非要迁徙到 Windows 上“。这些平台上的很多开发者们也更乐意于使用像 Sublime Text 这种轻量级的代码编辑器,而非像 Visual Studio 这种全特性的 IDE。

3、主要功能

该编辑器也集成了所有一款现代编辑器所应该具备的特性,包括(syntax high lighting),可定制的热键绑定(customizable keyboard bindings),括号匹配(bracket matching)以及代码片段收集(snippets)。Somasegar 也告诉笔者这款编辑器也拥有对 Git 的开箱即用的支持。

 

 

二、Sublime Text

 

Sublime Text 是一个代码编辑器(Sublime Text 2是收费软件,但可以无限期试用),也是HTML和散文先进的文本编辑器。Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能的。

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持、、等操作系统。

1、功能特性

Sublime Text 支持多种编程语言的、拥有优秀的代码自动完成功能,还拥有代码片段(Snippet)

的功能,可以将常用的代码片段保存起来,在需要时随时调用。支持 VIM 模式,可以使用Vim模式下的多数命令。支持宏,简单地说就是把操作录制下来或者自己编写命令,然后播放刚才录制的操作或者命令。

Sublime Text 还具有良好的扩展能力和完全开放的用户自定义配置与神奇实用的编辑状态恢复功能。支持强大的多行选择和多行编辑。强大的快捷命令“可以实时搜索到相应的命令、选项、snippet 和 syntex, 按下回车就可以直接执行,减少了查找的麻烦。即时的文件切换。随心所欲的跳转到任意文件的任意位置。多重选择功能允许在页面中同时存在多个光标。

该编辑器在界面上比较有特色的是支持多种布局和代码缩略图,右侧的文件略缩图滑动条,方便地观察当前窗口在文件的那个位置。也提供了 F11 和 Shift+F11 进入全屏免打扰模式。代码缩略图、多标签页和多种布局设置,在大屏幕或需同时编辑多文件时尤为方便 全屏免打扰模式,更加专心于编辑。代码缩略图的功能在更早的编辑器中就已经存在,TextMate已经开源。Sublime Text 2支持文件夹浏览,可以打开文件夹,在左侧会有导航栏,方便在同时处理多个文件。3、多个位置同时编辑,按住ctrl,用鼠标选择多个位置,可以同时在对应位置进行相同操作。 [1]

SublimeText 还有编辑状态恢复的能力,即当你修改了一个文件,但没有保存,这时退出软件,软件不询问用户是否要保存的,因为无论是用户自发退出还是意外崩溃退出,下次启动软件后,之前的编辑状态都会被完整恢复,就像退出前时一样。

2、特色功能

良好的扩展功能,官方称之为安装包(Package)。

右边没有滚动条,取而代之的是代码缩略图,这个功能非常赞

强大的快捷命令“可以实时搜索到相应的命令、选项、snippet和syntex,按下回车就可以直接执行,减少了查找的麻烦。”

即时的文件切换。

随心所欲的跳转到任意文件的任意位置。

多重选择(Multi-Selection)功能允许在页面中同时存在多个光标。

支持VIM模式。

支持宏,宏是什么,简单地说就是把操作录制下来或者自己编写命令,然后播放刚才录制的操作或者命令。

3、主要特点

1、深度整合GBK编码,可以完美支持GBK编码文件。

2、去除自动检测升级提示。

3、自动换行功能。

4、安装Emmet(ZenCoding)插件。

5、调整字体大小为11px以适合正常人使用习惯。

6、软件已注册。

4、常见功能

4.1自动完成

自动完成的快捷键是Tab,如果在html文件中,输入cl按下tab,即可自动补全为class=””;加上zencoding后,更是如虎添翼,后面再讲到

4.2多列编辑

按住ctrl点击鼠标,会出现多个闪烁的光标,这时可同时修改多处,或者按住鼠标中键拖拽。

4.3代码注释功能

ctrl+/、ctrl+shift+/分别为行注释和块注释,再按一下就能去掉注释,ST2能够自动识别是html、css还是js文件,给出不同类型的注释。

4.4行操作

ctrl+alt+↑、ctrl+alt+↓向上或者向下交换两行,ctrl+enter,光标后插入空行,ctrl+d选择相似,可以参考后面的快捷键列表。

4.5快捷键

Ctrl+L 选择整行(按住-继续选择下行)

Ctrl+KK 从光标处删除至行尾

Ctrl+K Backspace 从光标处删除至行首

Ctrl+J 合并行(已选择需要合并的多行时)

Ctrl+KU 改为大写

Ctrl+KL 改为小写

Ctrl+D 选择字符串 (按住-继续选择下个相同的字符串)

Ctrl+M 光标移动至括号内开始或结束的位置

Ctrl+/ 注释整行(如已选择内容,同“Ctrl+Shift+/”效果)

Ctrl+Shift+c转换为utf8

Ctrl+R 搜索指定文件的函数标签

Ctrl+G 跳转到指定行

Ctrl+KT 折叠属性

Ctrl+K0 展开所有

Ctrl+U 软撤销

Ctrl+T 词互换

Tab 缩进 自动完成

Shift+Tab 去除缩进

Ctrl+F2 设置书签.

F2 下一个书签

Shift+F2 上一个书签

shift+鼠标右键 列选择

Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑

Alt+. 闭合当前标签

F6 检测语法错误

F9 行排序(按a-z)

F11 全屏模式

Ctrl+Enter 光标后插入行

Ctrl+Shift+Enter 光标前插入行

Ctrl+Shift+[ 折叠代码

Ctrl+Shift+] 展开代码

Ctrl+Shift+↑ 与上行互换

Ctrl+Shift+↓ 与下行互换

Ctrl+Shift+A 选择光标位置父标签对儿

Ctrl+Shift+D 复制光标所在整行,插入在该行之前

ctrl+shift+F 在文件夹内查找,与普通编辑器不同的地方是sublime允许添加多个文件夹进行查找

Ctrl+Shift+K 删除整行

Ctrl+Shift+L 鼠标选中多行(按下快捷键),即可同时编辑这些行

Ctrl+Shift+M 选择括号内的内容(按住-继续选择父括号)

Ctrl+Shift+P 打开命令面板

Ctrl+Shift+/ 注释已选择内容

Ctrl+PageDown 、Ctrl+PageUp 文件按开启的前后顺序切换

Ctrl+鼠标左键 可以同时选择要编辑的多处文本

Shift+鼠标右键(或使用鼠标中键)可以用鼠标进行竖向多行选择

Shift+Tab 去除缩进

Alt+Shift+1~9(非小键盘)屏幕显示相等数字的小窗口

5、插件管理

1、安装Package Control

按Ctrl+`调出console

粘贴安装代码(见扩展阅读)到底部命令行并回车:

重启Sublime Text 2。

如果在Perferences->package settings中看到package control这一项,则安装成功。

可以到官网链接(见扩展阅读)下载Package Control.sublime-package放到sublime安装目录里的data里installed package文件夹(这个文件夹位置可能会不一样)

2、用Package Control安装其他插件

按下Ctrl+Shift+P调出命令面板

输入install 调出 Install Package 选项并回车,然后在列表中选中要安装的插件。

6、推荐插件

Convert To UTF8

将文件编码从GBK转换成UTF8,快捷键Ctrl+Shift+C

zenCoding

zenCoding是一种快速的html、css编写方式。默认用tab键.

已经更名为Emmet。

JS Format

一个JS代码格式化插件。默认ctrl+alt+f

BracketHighlighter

括弧高亮插件,清晰明了

Git

代码版本管理

ChineseLocalization [2]

汉化插件,支持无缝切换中文、日语、英文.

7、优点

  • 主流前端开发编辑器

  • 体积较小,运行速度快

  • 文本功能强大

  • 支持编译功能且可在控制台看到输出

  • 内嵌python解释器支持插件开发以达到可扩展目的

  • Package Control:ST支持的大量插件可通过其进行管理 [3]

8、新版发布

Sublime Text 3 Beta版已发布,最新版本为 Build 3207。 [4]

 

三、HBuilder

HBuilder是()推出的一款支持的开发。 [1] HBuilder的编写用到了、、Web和。HBuilder主体是由Java编写。

它基于,所以顺其自然地兼容了的。 [2]

特点

快,是HBuilder的最大优势,通过完整的语法提示和输入法、代码块等,大幅提升、、的开发效率。

 

 

四、YAPI

 

YApi是由去哪儿网移动架构组(简称YMFE,一群由FE、iOS和Android工程师共同组成的最具想象力、创造力和影响力的大前端团队)开源的可视化接口管理工具,一个可本地部署的、打通前后端及QA的接口管理平台,YApi旨在为开发、产品和测试人员提供更优雅的接口管理服务,可以帮助开发者轻松创建、发布和维护不同项目,不同平台的API。有了YApi,我们可以很方便的测试、管理和维护多个项目的API接口,不像Swagger那样是随应用生和灭的(且线上环境下大多数须关闭),YApi是一个独立的服务平台。

 

我的地址:

第一步注册

第二部:创建项目

第三步:

第四步:接口预览

第五步:编译接口(也就是修改接口 )

第六步:返回参数的携带

也可以实时编译返回的json数据

还可以修改header头

官方参考文档    https://yapi.ymfe.org/documents/index.html

在谷歌浏览器窗口可以直接输入当前接口的地址可以访问

在项目中也可以直接调用 不会存在跨域问题 具体原因参考官方文档

 

 

五、github

设置ssh密钥可以与开发工具vscode等进行连接,在开发工具终端可以输入git命令进行提交代码。

我的地址:

GitHub是一个面向及私有项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。

GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的 Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其注册用户已经超过350万,托管版本数量也是非常之多,其中不乏知名开源项目  on Rails、、 等。

2018年6月4日,微软宣布,通过75亿美元的股票交易收购代码托管平台GitHub。

2019年05月,《个人电脑杂志》网站报道,GitHub正遭到一名黑客的入侵。据称,这名黑客先擦除代码资源库,然后向用户索要赎金,作为恢复数据的交换。 [1]

1、基本功能

github作为开源代码库以及版本控制系统,Github拥有超过900万开发者用户。随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法。

如前所述,作为一个分布式的版本控制系统,在Git中并不存在主库这样的概念,每一份出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。

GitHub可以托管各种git库,并提供一个web界面,但它与外国的、或中国的的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。

在GitHub进行分支就像在(或…)进行交友一样,在社会关系图的节点中不断的连线。

GitHub项目本身自然而然的也在GitHub上进行托管,只不过在一个私有的,公共视图不可见的库中。

可以免费托管,但私有库则并不如此。Chris Wanstrath,GitHub的开发者之一,肯定了通过付费的私有库来在财务上支持免费库的托管这一计划。

是的,我们正是这么计划的。通过与客户的接洽,开发FamSpam,甚至是开发GitHub本身,GitHub的私有库已经被证明了物有所值。任何希望节省时间并希望和团队其它成员一样远离页面频繁转换之苦的人士都会从GitHub中获得他们真正想要的价值。

在GitHub,用户可以十分轻易地找到海量的代码。

2、版本历史

2012年12月24日,GitLab 4.0 RC2 发布,的 Github。

3、内幕信息

Chris Wanstrath还向记者分享了关于GitHub的一些内幕信息︰

GitHub主要用Rails实现。我们在进行的post-commit集成小应用完全使用Merb编写。我们使用了的Pygments来做格式高亮显示,另外,还用了Ara T. Howard's Bj加上一些Ruby来做我们的。当然,我们用了Ruby Grit库来和Git进行交互。

GitHub已经有了一组引人注目的特性,除了命令式的库和一个项目Wiki,GitHub甚至还包括了一个GitHub gem,以使通过shell方式使用GitHub更为方便。更多的未来特性已经在计划中︰

许多人都希望能有一个条目系统,因此一个简单的条目系统已经在开发中。此外,正如我前面所言,我们尚在进行服务器和一些之前留出的post-commit钩子方面的。如果你不能或就是不想托管一个你自己的,你可以使用我们所提供的。

我们还在开发一些特性来帮助公司在使用Github时可以停留在sync之上。

最后,我们也在进行发布方面的。我们很快就会发布一些只读性的API,随后是一些很强大的“写”集成。你可以使用API将新的事件发布到新闻feed中,发消息和做其他许多很酷的事情。

GitHub尚未设定官方版本的发布日期,不过估计在三月底(GitHub已经上线,但只能通过邀请注册)。更多关于GitHub的信息可以参见GitHub官方网站或GitHub博客。通过GitHub进行代码管理的开源项目列表也已经可以查阅。、、

4、Windows应用

GitHub 使用 git 分布式版本控制系统,而 git 最初是 LinusTorvalds 为帮助开发而创造的,它针对的是 Linux 平台,因此 git 和 Windows 从来不是最好的朋友,因为它一点也不像 。GitHub 发布了GitHub for Windows,为 Windows 平台开发者提供了一个易于使用的 Git 图形客户端。

GitHubA主界面GitHub for  是一个 Metro 风格,了自包含版本的 Git,bash 命令行 shell,PowerShell 的 posh-git 扩展。GitHub 为 Windows 用户提供了一个基本的图形前端去处理大部分常用版本控制任务,可以创建版本库,向本地版本库递交补丁,在和版本库之间同步。也通过向开发者提供 git 版本控制系统,而 GitHub 创造了一个更具有吸引力的 Windows 版本。

5、配置管理

GitHub上已自动配置的,一个工具,可以转换设置或Windows机器。

  BOXEN是GitHub的自动化工具,设置和配置的Mac笔记本电脑或其他类型的工作,正在使用他们的开发人员,律师,设计师,付货人,等。我们的想法是准备系统以自动方式和作为无差错尽可能用最少的干预工作。根据GitHub上,与一个新的开发机器上,他的Mac系统成立,并准备在30分钟内提交代码。
  BOXEN的基础上收集了大量的几十个木偶模块,使设置的各种软件,如卡桑德拉,MongoDB中,Java软件中,和开发中,节点,JS,nginx的,公司,甚至。虽然机器上配备了一个预配置,每个用户都可以调整它的配置应有的作用。

6、融资

全球最大的社交及代码托管网站GitHub以其开创性的新型软件开发方式并且能高效利用有限的资源通过自力更生实现公司盈利和300%的年收入增长成功的吸引知名风投机构Andreessen Horowitz一亿美金的投资。新的资金注入将帮助GitHub平台得到进一步的改进和扩展。

事实上,这不仅对首次接受外部投资的GitHub意义重大,同样对于投资方Andreessen Horowitz而言,这也是其迄今为止进行过的最大一次单笔投资案。作为投资案的一部分,Andreessen Horowitz的Peter Levine将入主GitHub董事会。

根据GitHub官方解释,这笔资金除了用于扩充员工队伍,改进现有服务并移植到

Github吉祥物Octocat动平台之外,还将服务对象从原来的编程爱好者和专业软件开发人员拓展至企业、、文字者等更广泛的客户群体。

GitHub有170万名软件开发人员的忠实用户,他们平均每天更新8万个并新建7千个。对GitHub网站上托管的总计超过300万个软件库,其联合创始人Chris Wanstrath曾经形象地称其为“的全书”。

 

 

六、bitbucket

设置ssh密钥可以与开发工具vscode等进行连接,在开发工具终端可以输入git命令进行提交代码。

BitBucket 是一家源代码托管网站,采用和作为分布式版本控制系统,同时提供商业计划和免费账户。

特点:

无限制的私有仓库个数

无限制的磁盘空间

同时支持https/ssh

Bug 跟踪

项目

API 支持

灵活的权限控制

可自定义域名

RSS 修改记录输出

自定义下载

 

六、蓝湖

会规定到每一个像素,每一个位置。

是一款产品文档和设计图的共享平台,帮助互联网团队更好地管理文档和设计图。蓝湖可以在线展示Axure,自动生成设计图标注,与团队共享设计图,展示页面之间的跳转关系..

特点:

  • 自动标注设计图、设计图管理、设计图批注

  • 快速生成交互原型,支持手机端演示分享

  • 汇总项目文档:在线共享 Axure 等产品文档,方便团队查看

  • 在线交互说明:交互说明永远最新,团队时刻保持同步

不过我之前使用蓝湖它不能满足我的一些需求,它和蓝湖都具有自动标注功能、快速生成交互原型,支持手机端演示分享功能......但是墨刀功能更丰富、更简便。比如我在sketch里做完设计后,可以用墨刀给sketch设计稿做自动标注,分享链接给开发哥哥,他们就可以查看标注了~一句话总结为”你有的它也有,你没有的,它也有!“你可以根据你的实际需求选择好用的原型交互设计软件~

 

七、nginx

配置好了以后,可以在连接相同局域网下,用不同的电脑访问主机域名下的网页

1、Nginx 安装配置

Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。

在高连接并发的情况下,Nginx是Apache服务器不错的替代品。


Nginx 安装

系统平台:CentOS release 6.6 (Final) 64位。

一、安装编译工具及库文件

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

二、首先要安装 PCRE

PCRE 作用是让 Nginx 支持 Rewrite 功能。

1、下载 PCRE 安装包,下载地址: 

[root@bogon src]# cd /usr/local/src/[root@bogon src]# wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

2、解压安装包:

[root@bogon src]# tar zxvf pcre-8.35.tar.gz

3、进入安装包目录

[root@bogon src]# cd pcre-8.35

4、编译安装 

[root@bogon pcre-8.35]# ./configure[root@bogon pcre-8.35]# make && make install

5、查看pcre版本

[root@bogon pcre-8.35]# pcre-config --version

安装 Nginx

1、下载 Nginx,下载地址:

[root@bogon src]# cd /usr/local/src/[root@bogon src]# wget http://nginx.org/download/nginx-1.6.2.tar.gz

 2、解压安装包

[root@bogon src]# tar zxvf nginx-1.6.2.tar.gz

3、进入安装包目录

[root@bogon src]# cd nginx-1.6.2

4、编译安装

[root@bogon nginx-1.6.2]# ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35[root@bogon nginx-1.6.2]# make[root@bogon nginx-1.6.2]# make install

5、查看nginx版本

[root@bogon nginx-1.6.2]# /usr/local/webserver/nginx/sbin/nginx -v

到此,nginx安装完成。


Nginx 配置

创建 Nginx 运行使用的用户 www:

[root@bogon conf]# /usr/sbin/groupadd www [root@bogon conf]# /usr/sbin/useradd -g www www

配置nginx.conf ,将/usr/local/webserver/nginx/conf/nginx.conf替换为以下内容

[root@bogon conf]#  cat /usr/local/webserver/nginx/conf/nginx.confuser www www;worker_processes 2; #设置值和CPU核心数一致error_log /usr/local/webserver/nginx/logs/nginx_error.log crit; #日志位置和日志级别pid /usr/local/webserver/nginx/nginx.pid;#Specifies the value for maximum file descriptors that can be opened by this process.worker_rlimit_nofile 65535;events{  use epoll;  worker_connections 65535;}http{  include mime.types;  default_type application/octet-stream;  log_format main  '$remote_addr - $remote_user [$time_local] "$request" '               '$status $body_bytes_sent "$http_referer" '               '"$http_user_agent" $http_x_forwarded_for';  #charset gb2312;       server_names_hash_bucket_size 128;  client_header_buffer_size 32k;  large_client_header_buffers 4 32k;  client_max_body_size 8m;       sendfile on;  tcp_nopush on;  keepalive_timeout 60;  tcp_nodelay on;  fastcgi_connect_timeout 300;  fastcgi_send_timeout 300;  fastcgi_read_timeout 300;  fastcgi_buffer_size 64k;  fastcgi_buffers 4 64k;  fastcgi_busy_buffers_size 128k;  fastcgi_temp_file_write_size 128k;  gzip on;   gzip_min_length 1k;  gzip_buffers 4 16k;  gzip_http_version 1.0;  gzip_comp_level 2;  gzip_types text/plain application/x-javascript text/css application/xml;  gzip_vary on;   #limit_zone crawler $binary_remote_addr 10m; #下面是server虚拟主机的配置 server  {    listen 80;#监听端口    server_name localhost;#域名    index index.html index.htm index.php;    root /usr/local/webserver/nginx/html;#站点目录      location ~ .*\.(php|php5)?$    {      #fastcgi_pass unix:/tmp/php-cgi.sock;      fastcgi_pass 127.0.0.1:9000;      fastcgi_index index.php;      include fastcgi.conf;    }    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$    {      expires 30d;  # access_log off;    }    location ~ .*\.(js|css)?$    {      expires 15d;   # access_log off;    }    access_log off;  }}

检查配置文件nginx.conf的正确性命令:

[root@bogon conf]# /usr/local/webserver/nginx/sbin/nginx -t


启动 Nginx

Nginx 启动命令如下:

[root@bogon conf]# /usr/local/webserver/nginx/sbin/nginx


访问站点

从浏览器访问我们配置的站点ip:


Nginx 其他命令

以下包含了 Nginx 常用的几个命令:

/usr/local/webserver/nginx/sbin/nginx -s reload            # 重新载入配置文件/usr/local/webserver/nginx/sbin/nginx -s reopen            # 重启 Nginx/usr/local/webserver/nginx/sbin/nginx -s stop              # 停止 Nginx

 

 

八、mongodb

用Robo 3T 连接MongoDB使用数据库

MongoDB是一个基于分布式文件存储的数据库。由语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB是一个介于和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似的格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立。

1、特点

它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:

*面向集合存储,易存储对象类型的数据。

mongodb集群参考

*模式自由。

*支持动态。

*支持完全索引,包含内部对象。

*支持查询。

*支持复制和故障恢复。

*使用高效的二进制数据存储,包括大型对象(如视频等)。

*自动处理碎片,以支持云计算层次的扩展性。

*支持 ,,,,,,等多种语言。

*文件存储格式为BSON(一种JSON的扩展)。

*可通过访问。

2、使用原理

所谓“面向集合”(Collection-Oriented),意思是数据被分组存储在数据集中,被称为一个集合(Collection)。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似(RDBMS)里的表(table),不同的是它不需要定义任何模式(schema)。Nytro MegaRAID技术中的闪存高速缓存算法,能够快速识别数据库内大数据集中的热数据,提供一致的性能改进。

模式自由(schema-free),意味着对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。

存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各种复件类型。我们称这种存储形式为(Binary Serialized Document Format)

MongoDB已经在多个站点部署,其主要场景如下:

1)网站实时数据处理。它非常适合实时的插入、更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。

2)缓存。由于性能很高,它适合作为信息基础设施的缓存层。在系统重启之后,由它搭建的持久化缓存层可以避免下层的数据源过载。

3)高伸缩性的场景。非常适合由数十或数百台服务器组成的数据库,它的路线图中已经包含对MapReduce引擎的内置支持。

不适用的场景如下:

1)要求高度事务性的系统。

2)传统的商业智能应用。

3)复杂的跨文档(表)级联查询。

3、系统介绍

(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。分布式文件系统的设计基于客户机/服务器模式。一个典型的网络可能包括多个供多用户访问的服务器。另外,对等特性允许一些系统扮演客户机和服务器的双重角色。 [1]

是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的。

Yonghong Data Mart是基于自有技术研发的一款数据存储、数据处理的软件。Yonghong Data Mart的分布式文件存储系统 (ZDFS)是在Hadoop HDFS基础上进行的改造和扩展,将服务器集群内所有节点上存储的文件统一管理和存储。

4、实际应用

MongoDB服务端可运行在、或mac os x平台,支持32位和64位应用,默认端口为27017。推荐运行在64位平台,因为MongoDB在32位模式运行时支持的最大文件尺寸为2GB。

5、版本发布

2012年05月23日,2.1 开发分支发布了! 该版本采用全新架构,包含诸多增强。

2012年06月06日,MongoDB 2.0.6 发布,分布式文档数据库。

2013年04月23日,MongoDB 2.4.3 发布,此版本包括了一些性能优化,功能增强以及bug修复。

2013年08月20日,MongoDB 2.4.6 发布。

2013年11月01日,MongoDB 2.4.8 发布,是目前最新的稳定版。

6、数据开发

6.1服务端

下载地址

在不同的系统上会有不同的版本。

6.2驱动

下载地址

用不同的语言开发会有不同的驱动提供。

7、设计特征

MongoDB 的设计目标是高性能、可扩展、易部署、易使用,存储数据非常方便。其主要功能特性如下。

(1)面向集合存储,容易存储对象类型的数据。在MongoDB 中数据被分组存储在集合中,集合类似RDBMS 中的表,一个集合中可以存储无限多的文档。

(2)模式自由,采用无模式结构存储。在MongoDB 中集合中存储的数据是无模式的文档,采用无模式存储数据是集合区别于RDBMS 中的表的一个重要特征。

(3)支持完全索引,可以在任意属性上建立索引,包含内部对象。MongoDB的索引和RDBMS 的索引基本一样,可以在指定属性、内部对象上创建索引以提高查询的速度。除此之外,MongoDB 还提供创建基于地理空间的索引的能力。

(4)支持查询。MongoDB 支持丰富的查询操作,MongoDB 几乎支持SQL中的大部分查询。

(5)强大的聚合工具。MongoDB 除了提供丰富的查询功能外,还提供强大的聚合工具,如count、group 等,支持使用MapReduce 完成复杂的聚合任务。

(6)支持复制和数据恢复。MongoDB 支持主从复制机制,可以实现数据备份、故障恢复、读扩展等功能。而基于副本集的复制机制提供了自动故障恢复的功能,确保了集群数据不会丢失。

(7)使用高效的二进制数据存储,包括大型对象(如视频)。使用二进制格式存储,可以保存任何类型的数据对象。

(8)自动处理分片,以支持云计算层次的扩展。MongoDB 支持集群自动切分数据,对数据进行分片可以使集群存储更多的数据,实现更大的负载,也能保证存储的负载均衡。

(9)支持Perl、PHP、Java、C#、JavaScript、Ruby、C 和C++语言的驱动程序,MongoDB 提供了当前所有主流开发语言的数据库驱动包,开发人员使用任何一种主流开发语言都可以轻松编程,实现访问MongoDB 数据库。

(10)文件存储格式为BSON(JSON 的一种扩展)。BSON 是对二进制格式的JSON 的简称,BSON 支持文档和数组的嵌套。

(11)可以通过网络访问。可以通过网络远程访问MongoDB 数据库。

8、基本概念

(1)文档

文档是 MongoDB 中数据的基本单位,类似于关系数据库中的行(但是比行复杂)。多个键及其关联的值有序地放在一起就构成了文档。不同的编程语言对文档的表示方法不同,在JavaScript 中文档表示为:

{“greeting”:“hello,world”}

这个文档只有一个键“greeting”,对应的值为“hello,world”。多数情况下,文档比这个更复杂,它包含多个键/值对。例如:

{“greeting”:“hello,world”,“foo”: 3}

文档中的键/值对是有序的,下面的文档与上面的文档是完全不同的两个文档。

{“foo”: 3 ,“greeting”:“hello,world”}

文档中的值不仅可以是双引号中的字符串,也可以是其他的数据类型,例如,整型、布尔型等,也可以是另外一个文档,即文档可以嵌套。文档中的键类型只能是字符串。

(2)集合

集合就是一组文档,类似于关系数据库中的表。集合是无模式的,集合中的文档可以是各式各样的。例如,{“hello,word”:“Mike”}和{“foo”: 3},它们的键不同,值的类型也不同,但是它们可以存放在同一个集合中,也就是不同模式的文档都可以放在同一个集合中。既然集合中可以存放任何类型的文档,那么为什么还需要使用多个集合?这是因为所有文档都放在同一个集合中,无论对于开发者还是管理员,都很难对集合进行管理,而且这种情形下,对集合的查询等操作效率都不高。所以在实际使用中,往往将文档分类存放在不同的集合中,例如,对于网站的日志记录,可以根据日志的级别进行存储,Info级别日志存放在Info 集合中,Debug 级别日志存放在Debug 集合中,这样既方便了管理,也提供了查询性能。但是需要注意的是,这种对文档进行划分来分别存储并不是MongoDB 的强制要求,用户可以灵活选择。

可以使用“.”按照命名空间将集合划分为子集合。例如,对于一个博客系统,可能包括blog.user 和blog.article 两个子集合,这样划分只是让组织结构更好一些,blog 集合和blog.user、blog.article 没有任何关系。虽然子集合没有任何特殊的地方,但是使用子集合组织数据结构清晰,这也是MongoDB 推荐的方法。

(3)数据库

MongoDB 中多个文档组成集合,多个集合组成数据库。一个MongoDB 实例可以承载多个数据库。它们之间可以看作相互独立,每个数据库都有独立的权限控制。在磁盘上,不同的数据库存放在不同的文件中。MongoDB 中存在以下系统数据库。

● Admin 数据库:一个权限数据库,如果创建用户的时候将该用户添加到admin 数据库中,那么该用户就自动继承了所有数据库的权限。

● Local 数据库:这个数据库永远不会被复制,可以用来存储本地单台服务器的任意集合。

● Config 数据库:当MongoDB 使用分片模式时,config 数据库在内部使用,用于保存分片的信息。

9、数据模型

一个MongoDB 实例可以包含一组数据库,一个DataBase 可以包含一组Collection(集合),一个集合可以包含一组Document(文档)。一个Document包含一组field(字段),每一个字段都是一个key/value pair。

key: 必须为字符串类型。

value:可以包含如下类型。

● 基本类型,例如,string,int,float,timestamp,binary 等类型。

● 一个document。

● 数组类型。

10、适用场景

MongoDB 的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)和传统的RDBMS 系统(具有丰富的功能)之间架起一座桥梁,它集两者的优势于一身。根据官方网站的描述,Mongo 适用于以下场景。

● 网站数据:Mongo 非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。

● 缓存:由于性能很高,Mongo 也适合作为信息基础设施的缓存层。在系统重启之后,由Mongo 搭建的持久化缓存层可以避免下层的数据源过载。

● 大尺寸、低价值的数据:使用传统的关系型数据库存储一些数据时可能会比较昂贵,在此之前,很多时候程序员往往会选择传统的文件进行存储。

● 高伸缩性的场景:Mongo 非常适合由数十或数百台服务器组成的数据库,Mongo 的路线图中已经包含对MapReduce 引擎的内置支持。

● 用于对象及JSON 数据的存储:Mongo 的BSON 数据格式非常适合文档化格式的存储及查询。

MongoDB 的使用也会有一些限制,例如,它不适合于以下几个地方。

● 高度事务性的系统:例如,银行或会计系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。

● 传统的商业智能应用:针对特定问题的BI 数据库会产生高度优化的查询方式。对于此类应用,数据仓库可能是更合适的选择。

● 需要SQL 的问题。

 

九、Robo 3T

mongoDB 可视化工具

  • Robo 3T 是免费版
  • Studio 3T 付费版

mac 下的 Robo 3T 的安装和使用

安装

  1. 启动安装,点击打开
    如果遇到:打不开“XXX”,因为它来自身份不明的开发者
    打开了 Terminal 终端后 ,在命令提示后输入
sudo spctl --master-disable
  • 输入电脑的用户密码,然后就可以愉快的操作了
  • 3.遇到各种用户名、邮箱、手机号……直接 finish

使用

  • 打开程序,点击左上角的 create创建一个连接,给该连接起个名字,如:localhost, 使用默认地址 localhost 和 端口27017 即可,点击save保存。如下图所示:

  • 点击保存后,就会在界面看到如下图所示

  • 双击 localhost 连接到 MongoDB 并进入交互界面; 我们可以看到我们本地数据库的表信息如下:

  • 右键数据库打开Shell

  • 批量插入(默认是不支批量操作,只能用for循环。)

    在刚刚打开的shell窗口输入如下代码, 如下所示:

点击左上角的绿色按钮,数据插入完成后,我们再来看下数据库会新增上面几条数据,如下所示:

  • 查询数据;
    在上面的for 循环的位置输入各种数据库操作的增删改查的命令

 

 

你可能感兴趣的文章
移动端自动化测试-Mac-IOS-Appium环境搭建
查看>>
Selenium之前世今生
查看>>
Selenium-WebDriverApi接口详解
查看>>
Selenium-ActionChains Api接口详解
查看>>
Selenium-Switch与SelectApi接口详解
查看>>
Selenium-Css Selector使用方法
查看>>
Linux常用统计命令之wc
查看>>
测试必会之 Linux 三剑客之 sed
查看>>
Socket请求XML客户端程序
查看>>
Java中数字转大写货币(支持到千亿)
查看>>
Java.nio
查看>>
函数模版类模版和偏特化泛化的总结
查看>>
VMware Workstation Pro虚拟机不可用解决方法
查看>>
最简单的使用redis自带程序实现c程序远程访问redis服务
查看>>
redis学习总结-- 内部数据 字符串 链表 字典 跳跃表
查看>>
iOS 对象序列化与反序列化
查看>>
iOS 序列化与反序列化(runtime) 01
查看>>
iOS AFN 3.0版本前后区别 01
查看>>
iOS ASI和AFN有什么区别
查看>>
iOS QQ侧滑菜单(高仿)
查看>>