02 2018 档案
摘要:Django REST framework 是一个强大且灵活的工具包,用以构建Web APIs。 为什么要使用REST framework? - 在线可视的API,对于赢得你的开发者们十分有用 - 验证策略涵盖了OAuth1a和OAuth2 - 同时支持ORM和非ORM数据源的序列化 - 可以配置各
阅读全文
摘要:Zlib 稳定性: 3 - 文档 可以通过以下方式访问这个模块: var zlib = require('zlib'); 这个模块提供了对 Gzip/Gunzip, Deflate/Inflate, 和 DeflateRaw/InflateRaw 类的绑定。每个类都有相同的参数和可读/写的流。 例子
阅读全文
摘要:可以通过以下方法访问该模块: JavaScript 可以立即编译立即执行,也可以编译,保存,之后再运行。 vm.runInThisContext(code[, options]) vm.runInThisContext() 对 参数code 编译,运行并返回结果。 运行的代码没有权限访问本地作用域(
阅读全文
摘要:这些函数都在'util' 模块里。使用 require('util') 来访问他们。 util 模块原先设计的初衷是用来支持 node 的内部 API 的。这里的很多的函数对你的程序来说都非常有用。如果你觉得这些函数不能满足你的要求,那你可以写自己的工具函数。我们不希望 'util' 模块里添加对于
阅读全文
摘要:这个模块包含分析和解析 URL 的工具。调用 require('url') 来访问模块。 解析 URL 对象有以下内容,依赖于他们是否在 URL 字符串里存在。任何不在 URL 字符串里的部分,都不会出现在解析对象里。例子如下: 'http://user:pass@host.com:8080/p/a
阅读全文
摘要:调用 require('dgram') ,可以使用数据报文 sockets(Datagram sockets)。 重要提醒: dgram.Socket#bind() 的行为在 v0.10 做了改动 ,它总是异步的。如果你的代码像下面的一样: 现在需要改为: dgram.createSocket(ty
阅读全文
摘要:process 是全局对象,能够在任意位置访问,是 EventEmitter 的实例。 退出状态码 当没有新的异步的操作等待处理时,Node 正常情况下退出时会返回状态码 0 。下面的状态码表示其他状态: 1 未捕获的致命异常-Uncaught Fatal Exception - 有未捕获异常,并且
阅读全文
摘要:tty 模块包含 tty.ReadStream 和 tty.WriteStream 类。多数情况下,你不必直接使用这个模块。 当 node 检测到自己正运行于 TTY 上下文时,process.stdin 将会是一个 tty.ReadStream 实例,并且 process.stdout 将会是 t
阅读全文
摘要:可以使用 require('tls') 来访问这个模块。 tls 模块 使用 OpenSSL 来提供传输层(Transport Layer)安全性和(或)安全套接层(Secure Socket Layer):加密过的流通讯。 TLS/SSL 是一种公钥/私钥基础架构。每个客户端和服务端都需要一个私钥
阅读全文
摘要:提供一些基本的操作系统相关函数。 使用 require('os') 访问这个模块。 os.tmpdir() 返回操作系统的默认临时文件夹 os.endianness() 返回 CPU 的字节序,可能的是 "BE" 或 "LE"。 os.hostname() 返回操作系统的主机名。 os.type()
阅读全文
摘要:所有的定时器函数都是全局的。不需要通过 require() 就可以访问。 setTimeout(callback, delay[, arg][, ...]) delay 毫秒之后执行 callback。返回 timeoutObject 对象,可能会用来 clearTimeout()。你也可以给回调函
阅读全文
摘要:通过 require('string_decoder') ,可以使用这个模块。字符串解码器(StringDecoder)将缓存(buffer)解码为字符串。这是 buffer.toString() 的简单接口,提供了 utf8 支持。 Class: StringDecoder 接受一个参数 enco
阅读全文
摘要:V8 提供了强大的调试工具,可以通过 TCP protocol 从外部访问。Node 内置这个调试工具客户端。要使用这个调试器,以debug参数启动 Node,出现提示: Node 的调试器不支持所有的命令,但是简单的步进和检查还是可以的。在代码里嵌入 debugger;,可以设置断点。 例如, m
阅读全文
摘要:net 模块提供了异步网络封装,它包含了创建服务器/客户端的方法(调用 streams)。可以通过调用 require('net') 包含这个模块。 net.createServer([options][, connectionListener]) 创建一个 TCP 服务器。参数 connectio
阅读全文
摘要:流是一个抽象接口,在 Node 里被不同的对象实现。例如request to an HTTPserver 是流,stdout 是流。流是可读,可写,或者可读写。所有的流是 EventEmitter 的实例。 你可以通过 require('stream') 加载 Stream 基类。其中包括了 Rea
阅读全文
摘要:使用 require('crypto') 来访问这个模块。 加密模块提供了 HTTP 或 HTTPS 连接过程中封装安全凭证的方法。 它也提供了 OpenSSL 的哈希,hmac, 加密(cipher), 解密(decipher), 签名(sign) 和 验证(verify) 方法的封装。 cryp
阅读全文
摘要:Node 有简单的模块加载系统。在 Node 里,文件和模块是一一对应的。下面例子里,foo.js 加载同一个文件夹里的 circle.js 模块。 foo.js 内容: circle.js 内容: circle.js 模块输出了 area() 和 circumference() 函数。想要给根模块
阅读全文
摘要:{Object} 用于打印输出字符到 stdout 和 stderr。和多数浏览器提供的 console 对象函数一样,Node 也是输出到 stdout 和 stderr。 当输出目标是终端或文件的时候,console 函数是同步的(为了防止意外退出数据丢失),输出是管道的时候是异步的(防止阻塞时
阅读全文
摘要:HTTPS 是基于 TLS/SSL 的 HTTP 协议。在 Node 里作为单独的模块来实现。 类: https.Server 这是 tls.Server 的子类,并且和 http.Server 一样触发事件。更多信息参见 http.Server 。 server.setTimeout(msecs,
阅读全文
摘要:单个 Node 实例运行在一个线程中。为了更好的利用多核系统的能力,可以启动 Node 集群来处理负载。 在集群模块里很容易就能创建一个共享所有服务器接口的进程。 运行 Node 后,将会在所有工作进程里共享 8000 端口。 这个特性是最近才引入的,大家可以试试并提供反馈。 还要注意,在 Wind
阅读全文
摘要:类: smalloc 由简单内存分配器(处理扩展原始内存的分配)支持的缓存。Smalloc 有以下函数: smalloc.alloc(length[, receiver][, type]) length {Number} <= smalloc.kMaxLength receiver {Object}
阅读全文
摘要:使用 HTTP 服务器或客户端功能必须调用 require('http')。 Node 里的 HTTP 接口支持协议里原本比较难用的特性。特别是很大的或块编码的消息。这些接口不会完全缓存整个请求或响应,这样用户可以在请求或响应中使用数据流。 HTTP消息头对象和下面的例子类似: Keys 都是小写,
阅读全文
摘要:Node 通过 child_process 模块提供了 popen(3) 数据流。 它能在非阻塞的方式中,通过 stdin, stdout, 和 stderr 传递数据。 (请注意,某些程序使用内部线性缓冲 I/O, 它并不妨碍 node.js,只是你发送给子进程的数据不会被立即消。) 使用 req
阅读全文
摘要:全局对象 这些对象在所有模块里都可用。有些对象不是在全局作用域而是在模块作用域里,这些情况下面文档都会标注出来。 global {Object} 全局命名空间对象。 浏览器里,全局作用域就是顶级域。如果在全局域内定义变量 var something 将会是全局变量。 Node 里不同,顶级域并不是全
阅读全文
摘要:逐行读取 稳定性: 2 - 不稳定 使用 require('readline'),可以使用这个模块。逐行读取(Readline)可以逐行读取流(比如process.stdin) 一旦你开启了这个模块,node 程序将不会终止,直到你关闭接口。以下的代码展示了如何优雅的退出程序: var readli
阅读全文
摘要:插件 Addons 是动态链接的共享对象。他提供了 C/C++ 类库能力。这些API比较复杂,他包以下几个类库: V8 JavaScript, C++ 类库。用来和 JavaScript 交互,比如创建对象,调用函数等等。在 v8.h 头文件中 (目录地址deps/v8/include/v8.h),
阅读全文
摘要:Query String 稳定性: 3 - 稳定 这个模块提供了一些处理 query strings 的工具,包括以下方法: querystring.stringify(obj[, sep][, eq][, options]) 将一个对象序列化化为一个 query string 。 可以选择重写默认
阅读全文
摘要:Node.js 是一个开放源代码、跨平台的、用于服务器端和网络应用的运行环境。 JXcore 是一个支持多线程的 Node.js 发行版本,基本不需要对你现有的代码做任何改动就可以直接线程安全地以多线程运行。 但我们这篇文章主要是要教大家介绍 JXcore 的打包功能。 JXcore 安装 下载 J
阅读全文
摘要:我们都知道 Node.js 是以单线程的模式运行的,但它使用的是事件驱动来处理并发,这样有助于我们在多核 cpu 的系统上创建多个子进程,从而提高性能。 每个子进程总是带有三个流对象:child.stdin, child.stdout 和child.stderr。他们可能会共享父进程的 stdio
阅读全文
摘要:什么是 REST? REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。 表述性状态转移是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RE
阅读全文
摘要:Express 简介 Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。 使用 Express 可以快速地搭建一个完整功能的网站。 Express 框架核心特性: 可以设置中间件来响应 HTTP 请求。
阅读全文
摘要:什么是 Web 服务器? Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL,与客户端的网络浏览器配合。 大多数 web 服务器都支持服务端的脚本语言(php、python、ruby
阅读全文
摘要:Node.js DNS 模块用于解析域名。引入 DNS 模块语法格式如下: 方法 rrtypes 以下列出了 dns.resolve() 方法中有效的 rrtypes值: 'A' IPV4 地址, 默认 'AAAA' IPV6 地址 'MX' 邮件交换记录 'TXT' text 记录 'SRV' S
阅读全文
摘要:Node.js Domain(域) 简化异步代码的异常处理,可以捕捉处理try catch无法捕捉的异常。引入 Domain 模块 语法格式如下: domain模块,把处理多个不同的IO的操作作为一个组。注册事件和回调到domain,当发生一个错误事件或抛出一个错误时,domain对象会被通知,不会
阅读全文
摘要:Node.js Net 模块提供了一些用于底层的网络通信的小工具,包含了创建服务器/客户端的方法,我们可以通过以下方式引入该模块: 方法 net.Server net.Server通常用于创建一个 TCP 或本地服务器。 事件 net.Socket net.Socket 对象是 TCP 或 UNIX
阅读全文
摘要:Node.js os 模块提供了一些基本的系统操作函数。我们可以通过以下方式引入该模块: 方法 属性 实例 创建 main.js 文件,代码如下所示: 代码执行结果如下:
阅读全文
摘要:Node.js path 模块提供了一些用于处理文件路径的小工具,我们可以通过以下方式引入该模块: 方法 属性 实例 创建 main.js 文件,代码如下所示: 代码执行结果如下:
阅读全文
摘要:在 Node.js 模块库中有很多好用的模块。接下来我们为大家介绍几种常用模块的使用:
阅读全文
摘要:Node.js 文件系统封装在 fs 模块是中,它提供了文件的读取、写入、更名、删除、遍历目录、链接等POSIX 文件系统操作。 与其他模块不同的是,fs 模块中所有的操作都提供了异步的和 同步的两个版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileS
阅读全文
摘要:util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足。 util.inherits util.inherits(constructor, superConstructor)是一个实现对象间原型继承 的函数。 JavaScript 的面
阅读全文
摘要:JavaScript 中有一个特殊的对象,称为全局对象(Global Object),它及其所有属性都可 以在程序的任何地方访问,即全局变量。 在浏览器JavaScript 中,通常window 是全局对象, 而Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外
阅读全文
摘要:我们要为路由提供请求的URL和其他需要的GET及POST参数,随后路由需要根据这些数据来执行相应的代码。 因此,我们需要查看HTTP请求,从中提取出请求的URL以及GET/POST参数。这一功能应当属于路由还是服务器(甚至作为一个模块自身的功能)确实值得探讨,但这里暂定其为我们的HTTP服务器的功能
阅读全文
摘要:在JavaScript中,一个函数可以作为另一个函数接收一个参数。我们可以先定义一个函数,然后传递,也可以在传递参数的地方直接定义函数。 Node.js中函数的使用与Javascript类似,举例来说,你可以这样做: 以上代码中,我们把 say 函数作为execute函数的第一个变量进行了传递。这里
阅读全文
摘要:Stream 是一个抽象接口,Node 中有很多对象实现了这个接口。例如,对http 服务器发起请求的request 对象就是一个 Stream,还有stdout(标准输出)。 Node.js,Stream 有四种流类型: Readable - 可读操作。 Writable - 可写操作。 Dupl
阅读全文
摘要:为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。 模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。换言之,一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON 或者编译过的C/C++ 扩展。 创建模块 在 N
阅读全文
摘要:JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。 但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。 在 Node.js 中,Buffer 类是随 Node 内核一起发布的核心
阅读全文
摘要:Node.js 所有的异步I/O 操作在完成时都会发送一个事件到事件队列。 Node.js里面的许多对象都会分发事件:一个net.Server对象会在每次有新连接时分发一个事件, 一个fs.readStream对象会在文件被打开的时候发出一个事件。 所有这些产生事件的对象都是 events.Even
阅读全文
摘要:Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高。 Node.js 的每一个 API 都是异步的,并作为一个独立线程运行,使用异步函数调用,并处理并发。 Node.js 基本上所有的事件机制都是用设计模式中观察者模式实现。 Node.js 单线程类似进入一个whil
阅读全文
摘要:Node.js 异步编程的直接体现就是回调。 异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了。 回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,Node 所有 API 都支持回调函数。 例如,我们可以一边读取文件,一边执行其他命令,在文件读取完成后,我们将文件内容作为回
阅读全文
摘要:Node.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电脑的环境,类似 Window 系统的终端或 Unix/Linux shell,我们可以在终端中输入命令,并接收系统的响应。 Node 自带了交互式解释器,可以执行以下任务: 读取 - 读取用户输入,解析输入
阅读全文
摘要:NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用。 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用
阅读全文
摘要:如果我们使用PHP来编写后端的代码时,需要Apache 或者 Nginx 的HTTP 服务器,并配上 mod_php5 模块和php-cgi。 从这个角度看,整个"接收 HTTP 请求并提供 Web 页面"的需求根本不需 要 PHP 来处理。 不过对 Node.js 来说,概念完全不一样了。使用 N
阅读全文
摘要:Node.js安装包及源码下载地址为:http://www.nodejs.org/en/download/。 根据不同平台系统选择你需要的Node.js安装包。 注意:Linux上安装Node.js需要安装Python 2.6 或 2.7 ,不建议安装Python 3.0以上版本。 Windowv
阅读全文
摘要:简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。 Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能
阅读全文
摘要:通道(Channel)是Go语言中一种非常独特的数据结构。它可用于在不同Goroutine之间传递类型化的数据,并且是并发安全的。相比之下,我们之前介绍的那些数据类型都不是并发安全的。这一点需要特别注意。 Goroutine(也称为Go程序)可以被看做是承载可被并发执行的代码块的载体。它们由Go语言
阅读全文
摘要:首先我们来看线程,在golang里面也叫goroutine 在读这篇文章之前,我们需要了解一下并发与并行。golang的线程是一种并发机制,而不是并行。它们之间的区别大家可以上网搜一下,网上有很多的介绍。 下面我们先来看一个例子吧 import( "fmt" ) funcmain(){ 在golan
阅读全文
摘要:Go 语言的 goto 语句可以无条件地转移到过程中指定的行。 goto语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。 但是,在结构化程序设计中一般不主张使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。 语法 goto 语法格式如下: brea
阅读全文
摘要:如果一个指针变量存放的又是另一个指针变量的地址,则称这个指针变量为指向指针的指针变量。 当定义一个指向指针的指针变量时,第一个指针存放第二个指针的地址,第二个指针存放变量的地址: 指向指针的指针变量声明格式如下: 以上指向指针的指针变量为整型。 访问指向指针的指针变量值需要使用两个 * 号,如下所示
阅读全文
摘要:Go 语言支持匿名函数,可作为闭包。匿名函数是一个"内联"语句或表达式。匿名函数的优越性在于可以直接使用函数内的变量,不必申明。 以下实例中,我们创建了函数 getSequence() ,返回另外一个函数。该函数的目的是在闭包中递增 i 变量,代码如下: 以上代码执行结果为:
阅读全文
摘要:Go 语言支持多维数组,以下为常用的多维数组声明方式: 以下实例声明了三维的整型数组: 二维数组 二维数组是最简单的多维数组,二维数组本质上是由一维数组组成的。二维数组定义方式如下: variable_type 为 Go 语言的数据类型,arrayName 为数组名,二维数组可认为是一个表格,x 为
阅读全文
摘要:Go 语言通过内置的错误接口提供了非常简单的错误处理机制。 error类型是一个接口类型,这是它的定义: 我们可以在编码中通过实现 error 接口类型来生成错误信息。 函数通常在最后的返回值中返回错误信息。使用errors.New 可返回一个错误信息: 在下面的例子中,我们在调用Sqrt的时候传递
阅读全文
摘要:Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口。 实例 实例 在上面的例子中,我们定义了一个接口Phone,接口里面有一个方法call()。然后我们在main函数里面定义了一个Phone类型变量,并分别为之赋值为Nokia
阅读全文
摘要:递归,就是在运行的过程中调用自己。 语法格式如下: Go 语言支持递归。但我们在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中。 递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等。 阶乘 以下实例通过 Go 语言的递归函数实例阶乘: 以上实例执行输出结果为:
阅读全文
摘要:类型转换用于将一种数据类型的变量转换为另外一种类型的变量。Go 语言类型转换基本格式如下: type_name 为类型,expression 为表达式。 实例 以下实例中将整型转化为浮点型,并计算结果,将结果赋值给浮点型变量: 以上实例执行输出结果为:
阅读全文
摘要:Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。 Map 是一种集合,所以我们可以像迭代数组和切片那样迭代它。不过,Map 是无序的,我们无法决定它的返回顺序,这是因为 Map 是使用 hash 表来实现的。 定义 Map 可以
阅读全文
摘要:Go 语言切片是对数组的抽象。 Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。 定义切片 你可以声明一个未指定大小的数组来定义切片: 切片不需要说明
阅读全文
摘要:Go 语言中 range 关键字用于for循环中迭代数组(array)、切片(slice)、链表(channel)或集合(map)的元素。在数组和切片中它返回元素的索引值,在集合中返回 key-value 对的 key 值。 实例 以上实例运行输出结果为:
阅读全文
摘要:Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。 结构体表示一项记录,比如保存图书馆的书籍记录,每本书有以下属性: Title :标题 Author : 作者 Subject:学科 ID:书籍ID
阅读全文
摘要:Go 语言中指针是很容易学习的,Go 语言中使用指针可以更简单的执行一些任务。 接下来让我们来一步步学习 Go 语言指针。 我们都知道,变量是一种使用方便的占位符,用于引用计算机内存地址。 Go 语言的取地址符是 &,放到一个变量前使用就会返回相应变量的内存地址。 以下实例演示了变量在内存中地址:
阅读全文
摘要:Go 语言提供了数组类型的数据结构。 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者自定义类型。 相对于去声明number0, number1, ..., and number99的变量,使用数组形式numbers[0], numbers[
阅读全文
摘要:作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。 Go 语言中变量可以在三个地方声明: 函数内定义的变量称为局部变量 函数外定义的变量称为全局变量 函数定义中的变量称为形式参数 接下来让我们具体了解局部变量、全局变量和形式参数。 局部变量 在函数体内声明的变量称之为局部变
阅读全文
摘要:函数是基本的代码块,用于执行一个任务。 Go 语言最少有个 main() 函数。 你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。 函数声明告诉了编译器函数的名称,返回类型,和参数。 Go 语言标准库提供了多种可动用的内置的函数。例如,len() 函数可以接受不同类型参数并返回该类型
阅读全文
摘要:在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。 以下为大多编程语言循环程序的流程图: Go 语言提供了以下几种类型循环处理语句: 循环控制语句 循环控制语句可以控制循环体内语句的执行过程。 GO 语言支持以下几种循环控制语句: 无限循环 如过循环中条件语句永远不为
阅读全文
摘要:条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句。 下图展示了程序语言中条件语句的结构: Go 语言提供了以下几种条件判断语句:
阅读全文
摘要:运算符用于在程序运行时执行数学或逻辑运算。 Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 接下来让我们来详细看看各个运算符的介绍。 算术运算符 下表列出了所有Go语言的算术运算符。假定 A 值为 10,B 值为 20。 以下实例演示了各个算术运算符
阅读全文
摘要:常量是一个简单值的标识符,在程序运行时,不会被修改的量。 常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。 常量的定义格式: 你可以省略类型说明符 [type],因为编译器可以根据变量的值来推断其类型。 显式类型定义: const b string = "abc" 隐式类型
阅读全文
摘要:变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。 Go 语言变量名由字母、数字、下划线组成,其中首个字母不能为数字。 声明变量的一般形式是使用 var 关键字: 变量声明 第一种,指定变量类型,声明后若不赋值,使用默认值。 第二种,根据值自行判定变量类型。 第
阅读全文
摘要:在 Go 编程语言中,数据类型用于声明函数和变量。 数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。 Go 语言按类别有以下几种数据类型: (a) 指针类型(Pointer) (b) 数组类型 (c) 结构化类型(struct)
阅读全文
摘要:Go 标记 Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号。如以下 GO 语句由 6 个标记组成: 6 个标记是(每行一个): 行分隔符 在 Go 程序中,一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号 ; 结尾,因为这些工作都将由 Go 编译器自动完
阅读全文
摘要:Go 语言支持以下系统: Linux FreeBSD Mac OS X(也称为 Darwin) Window 安装包下载地址为:https://golang.org/dl/。 各个系统对应的包名: UNIX/Linux/Mac OS X, 和 FreeBSD 安装 以下介绍了在UNIX/Linux/
阅读全文
摘要:Go Hello World 实例 Go 语言的基础组成有以下几个部分: 包声明 引入包 函数 变量 语句 & 表达式 注释 接下来让我们来看下简单的代码,该代码输出了"Hello World!": 让我们来看下以上程序的各个部分: 第一行代码 package main 定义了包名。你必须在源文件中
阅读全文
摘要:Go 语言教程 Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,
阅读全文
摘要:在下面表格中列出的方法用来设置或返回元素的 CSS 相关属性。
阅读全文
摘要:方法描述 data() 向被选元素附加数据,或者从被选元素获取数据 each() 为每个匹配元素执行函数 get() 获取由选择器指定的 DOM 元素 index() 从匹配元素中搜索给定元素 $.noConflict() 释放变量 $ 的 jQuery 控制权 $.param() 创建数组或对象的
阅读全文
摘要:方法描述 add() 把元素添加到匹配元素的集合中 addBack() 把之前的元素集添加到当前集合中 andSelf() 在版本 1.8 中被废弃。addBack() 的别名 children() 返回被选元素的所有直接子元素 closest() 返回被选元素的第一个祖先元素 contents()
阅读全文
摘要:方法描述 $.ajax() 执行异步 AJAX 请求 $.ajaxPrefilter() 在每个请求发送之前且被 $.ajax() 处理之前,处理自定义 Ajax 选项或修改已存在选项 $.ajaxSetup() 为将来的 AJAX 请求设置默认值 $.ajaxTransport() 创建处理 Aj
阅读全文
摘要:下面的方法适用于 HTML 和 XML 文档。除了:html() 方法。
阅读全文
摘要:方法描述 animate() 对被选元素应用"自定义"的动画 clearQueue() 对被选元素移除所有排队函数(仍未运行的) delay() 对被选元素的所有排队函数(仍未运行)设置延迟 dequeue() 移除下一个排队函数,然后执行函数 fadeIn() 逐渐改变被选元素的不透明度,从隐藏到
阅读全文
摘要:事件方法触发器或添加一个函数到被选元素的事件处理程序。 下面的表格列出了所有用于处理事件的 jQuery 方法。
阅读全文
摘要:选择器实例选取 * $("*") 所有元素 #id $("#lastname") id="lastname" 的元素 .class $(".intro") class="intro" 的所有元素 .class,.class $(".intro,.demo") class 为 "intro" 或 "demo" 的所有元素 element $("p") 所有 元素 el...
阅读全文
摘要:如何在页面上同时使用 jQuery 和其他框架? 要解决这个问题,只需要使用jQuery中的noConflict()方法,它允许你在同一个页面加载多个jQuery实例,尤其是不同版本的jQuery。 jQuery 和其他 JavaScript 框架 正如您已经了解到的,jQuery 使用 $ 符号作
阅读全文
摘要:jQuery get() 和 post() 方法用于通过 HTTP GET 或 POST 请求从服务器请求数据。 HTTP 请求:GET vs. POST 两种在客户端和服务器端进行请求-响应的常用方法是:GET 和 POST。 GET - 从指定的资源请求数据 POST - 向指定的资源提交要处理
阅读全文
摘要:jQuery load() 方法 jQuery load() 方法是简单但强大的 AJAX 方法。 load() 方法从服务器加载数据,并把返回的数据放入被选元素中。 语法: $(selector).load(URL,data,callback); $(selector).load(URL,data
阅读全文
摘要:AJAX 是与服务器交换数据的技术,它在不重载全部页面的情况下,实现了对部分网页的更新。 jQuery AJAX 实例 使用 jQuery AJAX 修改文本内容 jQuery AJAX 实例 使用 jQuery AJAX 修改文本内容 使用 jQuery AJAX 修改文本内容 使用 jQuery
阅读全文
摘要:extends和block一起用 它们用于母版和子版的继承 在母版html中将一些需要替换的部分用{% block xxx %}。。。{% endblock %}括起来, 在子版html中,在第一行需要写上要继承的母版,{% extends '母版的相对路径' %}这样引入母版。 include i
阅读全文
摘要:一、数据库的配置 1 django默认支持sqlite,mysql, oracle,postgresql数据库。 <1>sqlite django默认使用sqlite的数据库,默认自带sqlite的数据库驱动 引擎名称:django.db.backends.sqlite3 <2>mysql 引擎名称
阅读全文
摘要:开开启django时,使用0.0.0.0:xxxx,作为ip和端口例如: python3 manage.py runserver 0.0.0.0:9000 然后在settings里修改ALLOWED_HOSTS = [], 改为ALLOWED_HOSTS = ['*',],注意不要漏掉“,”。 其他
阅读全文
摘要:缩小搜索元素的范围 三个最基本的过滤方法是:first(), last() 和 eq(),它们允许您基于其在一组元素中的位置来选择一个特定的元素。 其他过滤方法,比如 filter() 和 not() 允许您选取匹配或不匹配某项指定标准的元素。 jQuery first() 方法 first() 方
阅读全文
摘要:同胞拥有相同的父元素。 通过 jQuery,您能够在 DOM 树中遍历元素的同胞元素。 在 DOM 树中水平遍历 有许多有用的方法让我们在 DOM 树进行水平遍历: siblings() next() nextAll() nextUntil() prev() prevAll() prevUntil(
阅读全文
摘要:后代是子、孙、曾孙等等。 通过 jQuery,您能够向下遍历 DOM 树,以查找元素的后代。 向下遍历 DOM 树 下面是两个用于向下遍历 DOM 树的 jQuery 方法: children() find() jQuery children() 方法 children() 方法返回被选元素的所有直
阅读全文
摘要:祖先是父、祖父或曾祖父等等。 通过 jQuery,您能够向上遍历 DOM 树,以查找元素的祖先。 向上遍历 DOM 树 这些 jQuery 方法很有用,它们用于向上遍历 DOM 树: parent() parents() parentsUntil() jQuery parent() 方法 paren
阅读全文
摘要:通过 jQuery,很容易处理元素和浏览器窗口的尺寸。 jQuery 尺寸 方法 jQuery 提供多个处理尺寸的重要方法: width() height() innerWidth() innerHeight() outerWidth() outerHeight() jQuery 尺寸 jQuery
阅读全文
摘要:什么是遍历? jQuery 遍历,意为"移动",用于根据其相对于其他元素的关系来"查找"(或选取)HTML 元素。以某项选择开始,并沿着这个选择移动,直到抵达您期望的元素为止。 下图展示了一个家族树。通过 jQuery 遍历,您能够从被选(当前的)元素开始,轻松地在家族树中向上移动(祖先),向下移动
阅读全文
摘要:jQuery css() Method css() 方法设置或返回被选元素的一个或多个样式属性。 返回 CSS 属性 如需返回指定的 CSS 属性的值,请使用如下语法: css("propertyname"); css("propertyname"); 下面的例子将返回首个匹配元素的 backgro
阅读全文
摘要:通过 jQuery,可以很容易地对 CSS 元素进行操作。 jQuery 操作 CSS jQuery 拥有若干进行 CSS 操作的方法。我们将学习下面这些: addClass() - 向被选元素添加一个或多个类 removeClass() - 从被选元素删除一个或多个类 toggleClass()
阅读全文
摘要:通过 jQuery,可以很容易地添加新元素/内容。 添加新的 HTML 内容 我们将学习用于添加新内容的四个 jQuery 方法: append() - 在被选元素内部的结尾插入指定内容 prepend() - 在被选元素内部的开头插入指定内容 after() - 在被选元素之后插入内容 befor
阅读全文
摘要:通过 jQuery,可以很容易地删除已有的 HTML 元素。 删除元素/内容 如需删除元素和内容,一般可使用以下两个 jQuery 方法: remove() - 删除被选元素(及其子元素) empty() - 从被选元素中删除子元素 jQuery remove() 方法 jQuery remove(
阅读全文
摘要:设置内容 - text()、html() 以及 val() 我们将使用前一章中的三个相同的方法来设置内容: text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容(包括 HTML 标记) val() - 设置或返回表单字段的值 text() - 设置或返回所选元素
阅读全文
摘要:jQuery 拥有可操作 HTML 元素和属性的强大方法。 jQuery DOM 操作 jQuery 中非常重要的部分,就是操作 DOM 的能力。 jQuery 提供一系列与 DOM 相关的方法,这使访问和操作元素和属性变得很容易。 DOM 定义访问 HTML 和 XML 文档的标准: "W3C 文
阅读全文
摘要:Callback 函数在当前动画 100% 完成之后执行。 jQuery 动画的问题 许多 jQuery 函数涉及动画。这些函数也许会将 speed 或 duration 作为可选参数。 例子:$("p").hide("slow") speed 或 duration 参数可以设置许多不同的值,比如
阅读全文
摘要:通过 jQuery,可以把动作/方法链接在一起。 Chaining 允许我们在一条语句中运行多个 jQuery 方法(在相同的元素上)。 jQuery 方法链接 直到现在,我们都是一次写一条 jQuery 语句(一条接着另一条)。 不过,有一种名为链接(chaining)的技术,允许我们在相同的元素
阅读全文
摘要:jQuery stop() 方法用于在动画或效果完成前对它们进行停止。 点击这里,向上/向下滑动面板 实例 jQuery stop() 滑动 演示 jQuery stop() 方法。 jQuery stop() 动画(带参数) 演示 jQuery stop() 方法 jQuery stop() 方法
阅读全文
摘要:在使用jQuery动画时,你可能想要实现更加丰富的效果,那么你可以通过使用 jQuery animate() 方法自定义动画来达到目的,具体的使用方法如下文所述。 jQuery animate() 方法允许您创建自定义的动画。 jQuery 注:实例运行过一次后,需刷新页面方可再次运行实例。 jQu
阅读全文
摘要:jQuery 滑动方法可使元素上下滑动。 点击这里,隐藏/显示面板 一寸光阴一寸金,因此,我们为您提供快捷易懂的学习内容。 在这里,您可以通过一种易懂的便利的模式获得您需要的任何知识。 一寸光阴一寸金,因此,我们为您提供快捷易懂的学习内容。 在这里,您可以通过一种易懂的便利的模式获得您需要的任何知识
阅读全文
摘要:在 jQuery 中可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素,以及使用 toggle() 方法能够切换 hide() 和 show() 方法。 隐藏、显示、切换,滑动,淡入淡出,以及动画,哇哦! 点击 显示/隐藏面板 实例 jQuery hide() 简单的jQue
阅读全文
摘要:在在jQuery中可以通过四个方法来实现元素的淡入淡出,这四个方法分别是:fadeIn()、fadeOut()、fadeToggle() 以及 fadeTo(),本文通过实例来为你讲解如何在jQuery中使用这四个方法。 通过 jQuery,您可以实现元素的淡入淡出效果。 点击展示 淡入/淡出 面板
阅读全文
摘要:jQuery 是为事件处理特别设计的。 什么是事件? 页面对不同访问者的响应叫做事件。 事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。 实例: 在元素上移动鼠标。 选取单选按钮 点击元素 在事件中经常使用术语"触发"(或"激发")例如: "当您按下按键时触发 keypress 事件"
阅读全文
摘要:jQuery 选择器允许您对 HTML 元素组或单个元素进行操作。 jQuery 选择器基于元素的 id、类、类型、属性、属性值等"查找"(或选择)HTML 元素。它基于已经存在的 CSS 选择器,除此之外,它还有一些自定义的选择器。 jQuery 中所有选择器都以美元符号开头:$()。 元素选择器
阅读全文
摘要:通过 jQuery,您可以选取(查询,query) HTML 元素,并对它们执行"操作"(actions)。 jQuery 语法 jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作。 基础语法: $(selector).action() 美元符号定义 jQuery 选择符(se
阅读全文
摘要:网页中添加 jQuery 可以通过多种方法在网页中添加 jQuery。 您可以使用以下方法: 从 jquery.com 下载 jQuery 库 从 CDN 中载入 jQuery, 如从 Google 中加载 jQuery 下载 jQuery 有两个版本的 jQuery 可供下载: Productio
阅读全文
摘要:jQuery 库可以通过一行简单的标记被添加到网页中。 您需要具备的基础知识 在您开始学习 jQuery 之前,您应该对以下知识有基本的了解: HTML CSS JavaScript 如果您需要首先学习这些科目,请在我们的 首页 查找这些教程。 什么是 jQuery ? jQuery是一个JavaS
阅读全文
摘要:Redis 服务器命令主要是用于管理 redis 服务。 实例 以下实例演示了如何获取 redis 服务器的统计信息: Redis 服务器命令 下表列出了 redis 服务器的相关命令:
阅读全文
摘要:Redis 连接命令主要是用于连接 redis 服务。 实例 以下实例演示了客户端如何通过密码验证连接到 redis 服务,并检测服务是否在运行: Redis 连接命令 下表列出了 redis 连接的基本命令:
阅读全文
摘要:Redis 脚本使用 Lua 解释器来执行脚本。 Reids 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 EVAL。 语法 Eval 命令的基本语法如下: 实例 以下实例演示了 redis 脚本工作过程: Redis 脚本命令 下表列出了 redis 脚本常用命令:
阅读全文
摘要:Redis 发布订阅 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 Redis 客户端可以订阅任意数量的频道。 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 clie
阅读全文
摘要:Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证: 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。 一个事务从开始到执行会经历以下三
阅读全文
摘要:Redis 在 2.8.9 版本添加了 HyperLogLog 结构。 Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。 在 Redis 里面,每个 HyperLogLo
阅读全文
摘要:Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。 有序集合的成员是唯一的,但分数(score)却可以重复。 集合是通过哈希表实现的,所以添加,删除,查找的
阅读全文
摘要:Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。 Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。 实例 在以上实
阅读全文
摘要:Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。 Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。 实例 在以上实例中,我们设置了 redis 的一些描述信息(name, description, likes,
阅读全文
摘要:Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边) 一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。 实例 在以上实例中我们使用了 LPUSH 将三个值插入了名为 w3ckey 的列表当中。
阅读全文
摘要:Redis 字符串数据类型的相关命令用于管理 redis 字符串值,基本语法如下: 语法 实例 redis 127.0.0.1:6379> SET w3ckey redis OK redis 127.0.0.1:6379> GET w3ckey "redis" 在以上实例中我们使用了 SET 和 G
阅读全文
摘要:Redis 键命令用于管理 redis 的键。 语法 Redis 键命令的基本语法如下: 实例 在以上实例中 DEL 是一个命令, w3ckey 是一个键。 如果键被删除成功,命令执行后输出 (integer) 1,否则将输出 (integer) 0 Redis keys 命令 下表给出了与 Red
阅读全文
摘要:安装 开始在 PHP 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 PHP redis 驱动,且你的机器上能正常使用 PHP。 接下来让我们安装 PHP redis 驱动:下载地址为:https://github.com/nicolasff/phpredis。 PHP安装re
阅读全文
摘要:Redis 命令用于在 redis 服务上执行操作。 要在 redis 服务上执行命令需要一个 redis 客户端。Redis 客户端在我们之前下载的的 redis 的安装包中。 语法 Redis 客户端的基本语法为: 实例 以下实例讲解了如何启动 redis 客户端: 启动 redis 客户端,打
阅读全文
摘要:安装 开始在 Java 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 Java redis 驱动,且你的机器上能正常使用 Java。 Java的安装配置可以参考我们的 Java开发环境配置 接下来让我们安装 Java redis 驱动: 首先你需要下载驱动包,下载 jedis
阅读全文
摘要:Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。这意味着通常情况下一个请求会遵循以下步骤: 客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。 服务端处理命令,并将结果返回给客户端。 Redis 管道技术 Redis 管道技术可以在服务端
阅读全文
摘要:分区是分割数据到多个Redis实例的处理过程,因此每个实例只保存key的一个子集。 分区的优势 通过利用多台计算机内存的和值,允许我们构造更大的数据库。 通过多核和多台计算机,允许我们扩展计算能力;通过多台计算机和网络适配器,允许我们扩展网络带宽。 分区的不足 redis的一些特性在分区方面表现的不
阅读全文
摘要:Redis 通过监听一个 TCP 端口或者 Unix socket 的方式来接收来自客户端的连接,当一个连接建立后,Redis 内部会进行以下一些操作: 首先,客户端 socket 会被设置为非阻塞模式,因为 Redis 在网络事件处理上采用的是非阻塞多路复用模型。 然后为这个 socket 设置
阅读全文
摘要:我们可以通过 redis 的配置文件设置密码参数,这样客户端连接到 redis 服务就需要密码验证,这样可以让你的 redis 服务更安全。 实例 我们可以通过以下命令查看是否设置了密码验证: 默认情况下 requirepass 参数是空的,这就意味着你无需通过密码验证就可以连接到 redis 服务
阅读全文
摘要:Redis 性能测试是通过同时执行多个命令实现的。 语法 redis 性能测试的基本命令如下: 实例 以下实例同时执行 10000 个请求来检测性能: redis 性能测试工具可选参数如下所示: 实例 以下实例我们使用了多个参数来测试 redis 性能: 以上实例中主机为 127.0.0.1,端口号
阅读全文
摘要:Redis SAVE 命令用于创建当前数据库的备份。 语法 redis Save 命令基本语法如下: 实例 该命令将在 redis 安装目录中创建dump.rdb文件。 恢复数据 如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可。获取 redis 目
阅读全文
摘要:edis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。 strin
阅读全文
摘要:Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf。 你可以通过 CONFIG 命令查看或设置配置项。 语法 Redis CONFIG 命令格式如下: 实例 使用 * 号获取所有配置项: 实例 编辑配置 你可以通过修改 redis.conf 文件或使用 CONFIG
阅读全文
摘要:Window 下安装 下载地址:https://github.com/dmajkic/redis/downloads。 下载到的Redis支持32bit和64bit。根据自己实际情况选择,将64bit的内容cp到自定义盘符安装目录取名redis。 如 C:\reids 打开一个cmd窗口 使用cd命
阅读全文
摘要:Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型
阅读全文
摘要:MongoDB 固定集合(Capped Collections)是性能出色且有着固定大小的集合,对于大小固定,我们可以想象其就像一个环形队列,当集合空间用完后,再插入的元素就会覆盖最初始的头部的元素! 创建固定集合 我们通过createCollection来创建一个固定集合,且capped选项设置为
阅读全文
摘要:MongoDB 没有像 SQL 一样有自动增长的功能, MongoDB 的 _id 是系统自动生成的12字节唯一标识。 但在某些情况下,我们可能需要实现 ObjectId 自动增长功能。 由于 MongoDB 没有实现这个功能,我们可以通过编程的方式来实现,以下我们将在 counters 集合中实现
阅读全文
摘要:GridFS 用于存储和恢复那些超过16M(BSON文件限制)的文件(如:图片、音频、视频等)。 GridFS 也是文件存储的一种方式,但是它是存储在MonoDB的集合中。 GridFS 可以更好的存储大于16M的文件。 GridFS 会将大文件对象分割成多个小的chunk(文件片段),一般为256
阅读全文
摘要:全文检索对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。 这个过程类似于通过字典中的检索字表查字的过程。 MongoDB 从 2.4 版本开始支持全文检索,目前支持15种语言(暂时不支持中文)的全文索引
阅读全文
摘要:正则表达式是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。 许多程序设计语言都支持利用正则表达式进行字符串操作。 MongoDB 使用 $regex 操作符来设置匹配字符串的正则表达式。 MongoDB使用PCRE (Perl Compatible Regular Expression)
阅读全文
摘要:Map-Reduce是一种计算模型,简单的说就是将大批量的工作(数据)分解(MAP)执行,然后再将结果合并成最终结果(REDUCE)。 MongoDB提供的Map-Reduce非常灵活,对于大规模数据分析也相当实用。 MapReduce 命令 以下是MapReduce的基本语法: 使用 MapRed
阅读全文
摘要:ObjectId 是一个12字节 BSON 类型数据,有以下格式: 前4个字节表示时间戳 接下来的3个字节是机器标识码 紧接的两个字节由进程id组成(PID) 最后三个字节是随机数。 MongoDB中存储的文档必须有一个"_id"键。这个键的值可以是任何类型的,默认是个ObjectId对象。 在一个
阅读全文
摘要:考虑以下文档集合(users ): 以上文档包含了 address 子文档和 tags 数组。 索引数组字段 假设我们基于标签来检索用户,为此我们需要对集合中的数组 tags 建立索引。 在数组中创建索引,需要对数组中的每个字段依次建立索引。所以在我们为数组 tags 创建索引时,会为 music、
阅读全文
摘要:额外开销 每个索引占据一定的存储空间,在进行插入,更新和删除操作时也需要对索引进行操作。所以,如果你很少对集合进行读取操作,建议不使用索引。 内存(RAM)使用 由于索引是存储在内存(RAM)中,你应该确保该索引的大小不超过内存的限制。 如果索引的大小大于内存的限制,MongoDB会删除一些索引,这
阅读全文
摘要:mongodb不支持事务,所以,在你的项目中应用时,要注意这点。无论什么设计,都不要要求mongodb保证数据的完整性。 但是mongodb提供了许多原子操作,比如文档的保存,修改,删除等,都是原子操作。 所谓原子操作就是要么这个文档保存到Mongodb,要么没有保存到Mongodb,不会出现查询到
阅读全文
摘要:MongoDB 查询分析可以确保我们建议的索引是否有效,是查询语句性能分析的重要工具。 MongoDB 查询分析常用函数有:explain() 和 hint()。 使用 explain() explain 操作提供了查询信息,使用索引及查询统计等。有利于我们对索引的优化。 接下来我们在 users
阅读全文
摘要:MongoDB 引用有两种: 手动引用(Manual References) DBRefs DBRefs vs 手动引用 考虑这样的一个场景,我们在不同的集合中 (address_home, address_office, address_mailing, 等)存储不同的地址(住址,办公室地址,邮件
阅读全文
摘要:官方的MongoDB的文档中说明,覆盖查询是以下的查询: 所有的查询字段是索引的一部分 所有的查询返回字段在同一个索引中 由于所有出现在查询中的字段是索引的一部分, MongoDB 无需在整个数据文档中检索匹配查询条件和返回使用相同索引的查询结果。 因为索引存在于RAM中,从索引中获取数据比通过扫描
阅读全文
摘要:MongoDB 的关系表示多个文档之间在逻辑上的相互联系。 文档间可以通过嵌入和引用来建立联系。 MongoDB 中的关系可以是: 1:1 (1对1) 1: N (1对多) N: 1 (多对1) N: N (多对多) 接下来我们来考虑下用户与用户地址的关系。 一个用户可以有多个地址,所以是一对多的关
阅读全文
摘要:恢复内容开始 PHP7 Mongdb 扩展安装 我们使用 pecl 命令来安装: 执行成功后,会输出以下结果: 接下来我们打开 php.ini 文件,添加 extension=mongodb.so 配置。 可以直接执行以下命令来添加。 注意:以上执行的命令中 php7 的安装目录为 /usr/loc
阅读全文
摘要:在php中使用mongodb你必须使用 mongodb的php驱动。 MongoDB PHP在各平台上的安装及驱动包下载请查看:PHP安装MongoDB扩展驱动 确保连接及选择一个数据库 为了确保正确连接,你需要指定数据库名,如果数据库在mongoDB中不存在,mongoDB会自动创建 代码片段如下
阅读全文
摘要:MongoDB Java 环境配置 在Java程序中如果要使用MongoDB,你需要确保已经安装了Java环境及MongoDB JDBC 驱动。 你可以参考本站的Java教程来安装Java程序。现在让我们来检测你是否安装了 MongoDB JDBC 驱动。 首先你必须下载mongo jar包,下载地
阅读全文
摘要:在你已经安装部署并允许MongoDB服务后,你必须要了解MongoDB的运行情况,并查看MongoDB的性能。这样在大流量得情况下可以很好的应对并保证MongoDB正常运作。 MongoDB中提供了mongostat 和 mongotop 两个命令来监控MongoDB的运行情况。 mongostat
阅读全文
摘要:MongoDB数据备份 在Mongodb中我们使用mongodump命令来备份MongoDB数据。该命令可以导出所有数据到指定目录中。 mongodump命令可以通过参数指定导出的数据量级转存的服务器。 语法 mongodump命令脚本语法如下: -h: MongDB所在服务器地址,例如:127.0
阅读全文
摘要:MongoDB复制是将数据同步在多个服务器的过程。 复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。 复制还允许您从硬件故障和服务中断中恢复数据。 什么是复制? 保障数据的安全性 数据高可用性 (24*7) 灾难恢复 无需停机维护(如备份,重建索
阅读全文
摘要:分片 在Mongodb里面存在另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求。 当MongoDB存储海量的数据时,一台机器可能不足以存储数据也足以提供可接受的读写吞吐量。这时,我们就可以通过在多台机器上分割数据,使得数据库系统能存储和处理更多的数据。 为什么使用分片 复制所有的
阅读全文
摘要:MongoDB 聚合 MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。有点类似sql语句中的 count(*)。 aggregate() 方法 MongoDB中聚合的方法使用aggregate()。 语法 aggregate() 方法的基
阅读全文
摘要:索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。 这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。 索引是特殊的数据结构,索引存储在一个易于遍历读取
阅读全文
摘要:MongoDB sort()方法 在MongoDB中使用使用sort()方法对数据进行排序,sort()方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而-1是用于降序排列。 语法 sort()方法基本语法如下所示: 实例 myycol 集合中的数据如下
阅读全文
摘要:MongoDB Limit() 方法 如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。 语法 limit()方法基本语法如下所示: 实例 集合 myycol 中的数据如下: 以
阅读全文
摘要:描述 条件操作符用于比较两个表达式并从mongoDB集合中获取数据。 在本章节中,我们将讨论如何在MongoDB中使用条件操作符。 MongoDB中条件操作符有: (>) 大于 - $gt (<) 小于 - $lt (>=) 大于等于 - $gte (<= ) 小于等于 - $lte 我们使用的数据
阅读全文
摘要:描述 在本章节中,我们将继续讨论MongoDB中条件操作符 $type。 $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。 MongoDB 中可以使用的类型如下表所示: 我们使用的数据库名称为"w3cschooldb" 我们的集合名称为"col",以下为我们插入的数据。 简
阅读全文
摘要:语法 MongoDB 查询数据的语法格式如下: find() 方法以非结构化的方式来显示所有文档。 如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下: pretty() 方法以格式化的方式来显示所有文档。 实例 以下实例我们查询了集合 col 中的数据: 除了 fin
阅读全文
摘要:ongoDB remove()函数是用来移除集合中的数据。 MongoDB数据更新可以使用update()函数。在执行remove()函数前先执行find()命令来判断执行的条件是否正确,这是一个比较好的习惯。 语法 remove() 方法的基本语法格式如下所示: 如果你的 MongoDB 是 2.
阅读全文
摘要:MongoDB使用update()函数更新数据 描述 本章节我们将开始学习如何更新MongoDB中的集合数据。 MongoDB数据更新可以使用update()函数。 db.collection.update( criteria, objNew, upsert, multi ) update()函数接
阅读全文
摘要:文档的数据结构和JSON基本一样。 所有存储在集合中的数据都是BSON格式。 BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON。 插入文档 MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下: 实例 以下文档可以存储在 MongoD
阅读全文
摘要:MongoDB 删除数据库 语法 MongoDB 删除数据库的语法格式如下: db.dropDatabase() 删除当前数据库,默认为 test,你可以使用 db 命令查看当前数据库名。 实例 以下实例我们删除了数据库 youj。 首先,查看所有数据库: > show dbs local 0.07
阅读全文
摘要:启动 MongoDB服务 在前面的教程中,我们已经讨论了如何启动MongoDB服务,你只需要在MongoDB安装目录的bin目录下执行'mongod'即可。 执行启动操作后,mongodb在输出一些必要信息后不会输出任何信息,之后就等待连接的建立,当连接被建立后,就会开始打印日志信息。 你可以使用M
阅读全文
摘要:语法 MongoDB 创建数据库的语法格式如下: 如果数据库不存在,则创建数据库,否则切换到指定数据库。 实例 以下实例我们创建了数据库 youj: 如果你想查看所有数据库,可以使用 show dbs 命令: 可以看到,我们刚创建的数据库 youj 并不在数据库的列表中, 要显示它,我们需要向 yo
阅读全文
摘要:MongoDB 概念解析 不管我们学习什么数据库都应该学习其中的基础概念,在mongodb中基本的概念是文档、集合、数据库,下面我们挨个介绍。 下表将帮助您更容易理解Mongo中的一些概念: 通过下图实例,我们也可以更直观的的了解Mongo中的一些概念: 数据库 一个mongodb中可以建立多个数据
阅读全文
摘要:下载 MongoDB提供了linux平台上32位和64位的安装包,你可以在官网下载安装包。 下载地址:http://www.mongodb.org/downloads 安装 下载完成后,在你安装的目录下解压zip包。 创建数据库目录 MongoDB的数据存储在data目录的db目录下,但是这个目录在
阅读全文
摘要:MongoDB 下载 MongoDB提供了可用于32位和64位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB预编译二进制包下载地址: http://www.mongodb.org/downloads 解压 下载zip包后,解压安装包,并安装它。 创建数据目录 MongoDB
阅读全文
摘要:什么是MongoDB ? MongoDB 是由C++语言编写的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB 将数据存储为一个文档。MongoDB是一个基于分布式文件存储的数据库。 Fir
阅读全文
摘要:NoSQL 简介 NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。 在现代的计算系统上每天网络上都会产生庞大的数据量。 这些数据有很大一部分是由关系数据库管理系统(RDMBSs)来处理。 1970年 E.F.Codd's提出的关系模型的论文 "A relationa
阅读全文
摘要:资源链接 Docker 主站点: https://www.docker.io Docker 注册中心API: http://docs.docker.com/reference/api/registry_api/ Docker Hub API: http://docs.docker.com/refer
阅读全文
摘要:Redis 基本信息 Redis 是开源的内存 Key-Value 数据库实现。 该仓库提供了 Redis 2.6 ~ 2.8.9 各个版本的镜像。 使用方法 默认会在 6379 端口启动数据库。 $ sudo docker run --name some-redis -d redis 另外还可以启
阅读全文
摘要:MongoDB 基本信息 MongoDB 是开源的 NoSQL 数据库实现。 该仓库提供了 MongoDB 2.2 ~ 2.7 各个版本的镜像。 使用方法 默认会在 27017 端口启动数据库。 $ sudo docker run --name some-mongo -d mongo 使用其他应用连
阅读全文
摘要:MySQL 基本信息 MySQL 是开源的关系数据库实现。 该仓库提供了 MySQL 各个版本的镜像,包括 5.6 系列、5.7 系列等。 使用方法 默认会在 3306 端口启动数据库。 $ sudo docker run --name some-mysql -e MYSQL_ROOT_PASSWO
阅读全文
摘要:CentOS 基本信息 CentOS 是流行的 Linux 发行版,其软件包大多跟 RedHat 系列保持一致。 该仓库提供了 CentOS 从 5 ~ 7 各个版本的镜像。 使用方法 默认会启动一个最小化的 CentOS 环境。 $ sudo docker run --name some-cent
阅读全文
摘要:Ubuntu 基本信息 Ubuntu 是流行的 Linux 发行版,其自带软件版本往往较新一些。 该仓库提供了 Ubuntu从12.04 ~ 14.10 各个版本的镜像。 使用方法 默认会启动一个最小化的 Ubuntu 环境。 $ sudo docker run --name some-ubuntu
阅读全文
摘要:Node.js 基本信息 Node.js是基于 JavaScript 的可扩展服务端和网络软件开发平台。 该仓库提供了 Node.js 0.8 ~ 0.11 各个版本的镜像。 使用方法 在项目中创建一个 Dockerfile。 FROM node:0.10-onbuild # replace thi
阅读全文
摘要:WordPress 基本信息 WordPress 是开源的 Blog 和内容管理系统框架,它基于 PhP 和 MySQL。 该仓库提供了 WordPress 4.0 版本的镜像。 使用方法 启动容器需要 MySQL 的支持,默认端口为 80。 $ sudo docker run --name som
阅读全文
摘要:Nginx 基本信息 Nginx 是开源的高效的 Web 服务器实现,支持 HTTP、HTTPS、SMTP、POP3、IMAP 等协议。 该仓库提供了 Nginx 1.0 ~ 1.7 各个版本的镜像。 使用方法 下面的命令将作为一个静态页面服务器启动。 $ sudo docker run --nam
阅读全文
摘要:基本语法 一般来说,Docker 命令可以用来管理 daemon,或者通过 CLI 命令管理镜像和容器。可以通过 man docker 来查看这些命令。 选项 命令 Docker 的命令可以采用 docker-CMD 或者 docker CMD 的方式执行。两者一致。 一张图总结 Docker 的命
阅读全文
摘要:Kubernetes 是 Google 团队发起并维护的基于Docker的开源容器集群管理系统,它不仅支持常见的云平台,而且支持内部数据中心。 建于Docker之上的Kubernetes可以构建一个容器的调度服务,其目的是让用户透过Kubernetes集群来进行云端容器集群的管理,而无需用户进行复杂
阅读全文
摘要:在你的应用里面添加一个 fig.yml 文件,并指定一些简单的内容,执行 fig up 它就能帮你快速建立起一个容器 快速搭建基于 Docker 的隔离开发环境 使用 Dockerfile 文件指定你的应用环境,让它能在任意地方复制使用: FROM python:2.7 ADD . /code WO
阅读全文
摘要:etcd 是 CoreOS 团队发起的一个管理配置信息和服务发现(service discovery)的项目,在这一章里面,我们将介绍该项目的目标,安装和使用,以及实现的技术。 Docker的etcd简介 什么是 etcd etcd 是 CoreOS 团队于 2013 年 6 月发起的开源项目,它的
阅读全文
摘要:Docker 的网络实现其实就是利用了 Linux 上的网络名字空间和虚拟网络设备(特别是 veth pair)。建议先熟悉了解这两部分的基本概念再阅读本章。 基本原理 首先,要实现网络通信,机器需要至少一个网络接口(物理接口或虚拟接口)来收发数据包;此外,如果不同子网之间要进行通信,需要路由机制。
阅读全文
摘要:最初,Docker 采用了 LXC 中的容器格式。自 1.20 版本开始,Docker 也开始支持新的 libcontainer 格式,并作为默认选项。 对更多容器格式的支持,还在进一步的发展中。 最初,Docker 采用了 LXC 中的容器格式。自 1.20 版本开始,Docker 也开始支持新的
阅读全文