NoSQL篇-MongDB数据库
1.MongDB的简介:
MongoDB是一个开源、高性能、无模式的文档型数据库
当初的设计就是用于简化开发和方便扩展,是NoSQL数据库产品中的一种。是最像关系型数据库(MySQL)的非关系型数据库。
它支持的数据结构非常松散,是一种类似于 JSON 的 格式叫BSON,所以它既可以存储比较复杂的数据类型,又相当的灵活。
MongoDB中的记录是一个文档,它是一个由字段和值对(fifield:value)组成的数据结构。MongoDB文档类似于JSON对象,即一个文档认为就是一个对象。字段的数据类型是字符型,它的值除了使用基本的一些类型外,还可以包括其他文档、普通数组和文档数组。
2.MongDB的相关概念:
MongoDB可应对三高需求:
High performance - 对数据库高并发读写的需求
Huge Storage - 对海量数据的高效率存储和访问的需求
High Scalability && High Availability- 对数据库的高可扩展性和高可用性的需求
3.MongDB的体系结构:
mysql与MongDB对比
4.Mong ...
NoSQL篇-Redis数据库
1.NoSQL的概念:
NoSQL(Not Only SQL)即不仅仅是SQL,泛指非关系型的数据库,它可以作为关系型数据库的良好补充。随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。
为什么会出现NoSQL技术:传统的关系型数据库在应付web2.0网站暴露了很多难以克服的问题:
数据的高并发读写
海量数据的高效率存储和访问
数据库的高扩展和高可用
NoSQL的类别:
键值(Key-Value)存储数据库:这一类数据库主要会使用到一个哈希表
应用:内容缓存,主要用于处理大量数据的高访问负载。
优势:快速查询
劣势:存储的数据缺少结构化
列存储数据库:这部分数据库通常是用来应对分布式存储的海量数据
应用:分布式文件系统
优势:查找速度快,可扩展性强,更容易进行分布式扩展
劣势:功能相对局限
文档型数据库:该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储
应用:Web应用
优势:数据结构要求不严格
劣势:查询性能不高,且缺乏统一的查询语法
图形(Graph)数据库:图形结构的数据库同其他行列 ...
SQL篇-MySQL数据库
1.数据库的基本概念:
名称
全称
简称
数据库
存储数据的仓库,数据是有组织的进行存储
DataBase( DB )
数据库管理系统
操作和管理数据库的大型软件
DataBase Management System( DBMS )
SQL
操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准
Structured Query Language( SQL )
什么是数据库:
数据库是“按照数据结构来组织、存储和管理数据的仓库
是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合
数据库的特点:
持久化存储数据。数据库也是一个文件系统
方便存储和管理数据
使用了统一的方式操作数据库—SQL
关系型数据库(RDBMS)
概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库
特点:
使用表存储数据,格式统一,便于维护
使用SQL语言操作,标准统一,使用方便
非关系型数据库(Not Only SQL):
概念:是一种轻量、开源、不兼容 SQL 功能的数据库;
特点:
强调 Key-Value 存储和文档数据 ...
Ansible
1.playbook的概念:
临时命令可以作为一次性对一组主机运行简单的任务。不过,若要真正发挥Ansible的力量,需要使用playbook
playbook:
playbook是ansible用于配置,部署,和管理被节点的剧本
playbook是一个文本文件,playbook可以轻松重复的方式对一组主机执行多项复杂的任务。
playbook包含有一个或者多个按特定顺序运行的play组成的列表
play是针对对清单中选定的主机运行一组有序任务
yaml 标记语言
yaml 标记语言是一个可读性高的用来表达资料序列的格式
YAML 语言特性
YAML的可读性好
YAML和脚本语言的交互性好
YAML使用实现语言的数据类型
YAML有一个一致的信息模型
YAML易于实现
YAML可以基于流来处理
YAML表达能力强,扩展性好
YAML的三种数据结构
数据结构
说明
对象
键值对的集合,又称为映射、哈希、字典
数组
一组按次序排列的值,又称为序列/列表
纯量
单个的、不可再分的值
12345678910# 对象:key: key1: v ...
Ansible基础
1.Ansible的概念:
什么是Ansible:
Ansible是近年越来越火的基于python开发的一款运维自动化工具
主要帮助运维实现IT工作的自动化、降低人为操作失误、提高业务自动化率、提高运维工作效率
Ansible是基于模块来运行,它本身没有任何批量部署的能力,Ansible主要是提供一种批量部署的框架
常用于软件部署自动化、配置自动化、管理自动化、系统化系统任务、持续集成、零宕机平滑升级等
ansible可以批量修改服务器密码,批量安装软件包,批量修改配置
为什么选择Ansible:
方便对Ansible的二次开发
Ansible丰富的内置模块
在Ansible去中心化概念
Agentless(无客户端)
Ansible优点:
轻量级,他不需要去客户端安装agent,更新时,只需要在操作机上进行一次更新即可
批量任务执行可以写成脚本,而且不用分发到远程就可以执行
使用python编写的,维护更简单
支持sudo
Ansible缺点:对于几千台、上万台机器的操作,还不清楚性能、效率情况如何,需要进一步了解
2.Ansible应用领域:-
3.Ansible架 ...
git工具
1.概念:
Git是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理,通过Git仓库来存储和管理这些文件
Git仓库分为两种:
本地仓库:开发人员自己电脑上的Git仓库
远程仓库:远程服务器上的Git
功能:1.代码回溯,2.版本切换,3.多人协作,4.远程备份
版本库:前面看到的.git隐藏文件夹就是版本库(本地仓库),版本库中存储了很多配置信息,日志信息和文件版本信息等
工作区:包含.git文件夹的目录就是工作区,也称工作目录,主要用于存放开发的代码
暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方
2.Git工作流程图:
命令如下:
123456781. clone(克隆): 从远程仓库中克隆代码到本地仓库2. checkout (检出):从本地仓库中检出一个仓库分支然后进行修订3. add(添加): 在提交前先将代码提交到暂存区4. com ...
Docker容器
1.Docker概述:1.docker的概念:
Docker是一个开源的应用容器引擎
Docker是一个用于开发,交付和运行应用程序的开放平台
诞生于2013年初,基于Go语言实现,dotCloud公司出品(后改名为Docker Inc)
Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植的容器中,然后发布到任何流行的Linux机器上
可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统
容器时完全使用沙箱机制,相互隔离
容器性能开销极低
Docker从17.03版本之后分为CE(社区版)和EE(企业版)
总结:
docker是一种容器技术,解决软件跨环境迁移的问题
2.Docker解决的问题:
Docker如何解决依赖的兼容问题:
将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包
将每个应用放到一个隔离容器去运行,避免互相干扰
Docker如何解决不同系统环境的问题:
Docker将用户程序与所需要调用的系统(比如Ubuntu**)函数库一起打包**
Docker运行到不同操作系统时,直接基 ...
Linux基础
1.Linux的概念:
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·托瓦兹在赫尔辛基大学上学时出于个人爱好而编写的
Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统
Linux的组成:1.内核 2.shell 3.文件系统 4.Linux应用系统
Linux操作系统由三部分组成:1.内核 2.Shell 3.文件结构
Linux文件系统由bootfs和rootfs两部分组成
计算机的组成:1.控制器,2.计算器,3.存储器,4.输入设备,5.输出设备
操作系统内核的功能:1.系统调用接口,2.程序管理,3.内存管理,4.文件系统管理,5.设备驱动
登录系统的方式有:图形化登录和虚拟控制台登录
Linux的特点:1.开放性 2.多用户 3.多任务 4.良好的用户界面 5.设备独立性 6.丰富的网络功能 7.可靠的系统安全 8.良好的可移植性
2.为什么需要使用Linux操作系统:
性能问题:win ...