如果您对第一章Nodejs介绍及安装和nodejs的安装教程感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解第一章Nodejs介绍及安装的各种细节,并对nodejs的安装教程进行深入的分析,此外
如果您对第一章 Nodejs 介绍及安装和nodejs的安装教程感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解第一章 Nodejs 介绍及安装的各种细节,并对nodejs的安装教程进行深入的分析,此外还有关于77:NoSQL 之 Memcached 介绍及安装、Cenos安装nodejs和nodejs依赖管理软件npm、linux中安装nodejs,卸载nodejs,更新nodejs,git、mac安装nodejs以及配置环境,nodejs版本降级的实用技巧。
本文目录一览:- 第一章 Nodejs 介绍及安装(nodejs的安装教程)
- 77:NoSQL 之 Memcached 介绍及安装
- Cenos安装nodejs和nodejs依赖管理软件npm
- linux中安装nodejs,卸载nodejs,更新nodejs,git
- mac安装nodejs以及配置环境,nodejs版本降级
第一章 Nodejs 介绍及安装(nodejs的安装教程)
一 什么是node.
1.V8引擎的封装.
相信大家都用过Chrome浏览器了吧,chrome给人第一的感觉就是快!这得益于chrome自带的V8引擎,这引擎是用来解释及运行javascript的,它非常高效稳定.V8 JavaScript 引擎是 Google 用于他们的 Chrome 浏览器的底层 JavaScript 引擎,该引擎可以嵌入任何 应用程序,不仅限于在一个浏览器中。
Node是一个Javascript运行环境(runtime),并非一门新的语言。实际上它是对Google V8引擎进行了封装。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好,通过node,使得我们可以使用V8引擎在服务端运行javascript,为我们提供后端的服务.
2.高并发的一种解决方案
我们来做个数学题。在 Java™ 和 PHP 这类语言中,每个连接都会生成一个新线程,每个新线程(进程)可能需要 2 MB 配套内存。在一个拥有 8 GB RAM 的系统上,理论上最大的并发连接数量是 4,000 个用户。随着您的客户端基础的增长,您希望您的 web 应用程序支持更多用户,这样,您必须添加更多服务器。
而javascript则是单线程(或者说双线程)的,不存在线程的消耗,能降低系统消耗,而其异步和事件驱动的特征,又解决了单线程不能及时相应用户请求的问题,从而成为高并发环境下的很好解决方案.
3.总结:
node 是一个javascript的后端实现和运行环境,并非一门新的语言,它就是javascript.
node 使用V8引擎
node 单线程异步和事件驱动的特性令其适合高并发环境.
二 下载及安装nodejs
1.下载node
nodejs官方网站下载:
https://nodejs.org/download/
在这里,您可以下载最新版本的nodjs
2.安装node
windows下的安装与一般的软件安装无差异,只要一直下一步即可.
Linux下安装
#wget http://nodejs.org/dist/v0.10.17/node-v0.10.17.tar.gz
# tar xvf node-v0.10.17.tar.gz
# cd node-v0.10.17
# ./configure
# make
# make install
可能需要下面依赖:
#apt-get install make g++
或者:
#yum install gcc-c++
检查是否成功安装,输入命令:
# node -v
77:NoSQL 之 Memcached 介绍及安装
1、nosql:非关系型数据库;关系型的数据库代表是 mysql;
关系型的数据库代表是 mysql, 可以使用 sql 语句 (create insert update select) 等,是需要把数据库存放到库 - 表 - 行 - 字段里,查询的是也一行一行去匹配,当查询量非常大的时候很耗费资源;
nosql 的存储原理非常简单 (数据类型为 k-v), 一个键对应一个值,不存在繁琐的关系链,比如 mysql 查询的时候,需要找到库 - 表 - 多个字段;
nosql 数据可以存储在内存中 , 查询速度非常快;
nosql 在性能虽然关系型数据库,但是并不能完全代替关系型数据库;比如:部署了论坛后,用户访问量太大,数据库扛不住了,这个时候可以加一层缓存进来 (内存里), 也就是 nosql, 可以减轻数据库的压力,
比如查询完一个帖子后,先放到内存里 (帖子 ID 对应帖子内容) 及是 (key 对应 value) 一条一条把论坛的帖子内容缓存到内存里,当用户再访问的时候就不查询 mysql, 直接查看缓存,减轻数据库的压力,这是最典型的用法了;
nosql 没有复杂的数据结构,扩展非常容易,支持分布式;如:本来商品存在的 A 服务器,而 A 服务器有瓶颈了,那怎么在 B 服务器上查询 A 服务器的数据呢,mysql 数据库做不到,只有 nosql 可以增加服务器横向扩展;
2、常见的 nosql 数据库:
键值数据库 (k-v);memcached、redis 适合存储用户信息,比如用户会话 (session)、参数、购物车,这些信息一般都和 ID (键) 挂钩,这种情况下键值数据库是一个很好的选择;
用户会话 (session): 用户登录信息,用来做 session 共享;
文档数据库:mongodb, 将数据以文档的形式存储,多个 key-value 组成的文档,每个文档都是一系列数据项的集合,每个数据项都有一个名词与对应的值,值可以是简单的数据类型,如字符串、数字、日期,也可以是复杂的类型,如有序列表和关联对象,存储的最小单位是文档,同一个表中存储的文档属性可以是不同的; 列存储:Hbase
3、memcached:是国外社区网站 Livejournal 团队开发,目的是为了通过缓存数据库查询结果,减少数据库访问次数,从而提高动态 web 站点性能;
官网:www.memcached.org
数据结构简单 (key-value), 数据存放在内存里;不支持持久化 (一重启服务,数据会丢失);
多线程,基于 C/S 架构;
语句 libevent 的事件处理,自主内存存储处理;slab allowcation
数据过期方式;Laze expiration LRU
4、memcache 的数据流向;
5:slab allcation:
Slab Allocation 的原理
将分配的内存分割成各种尺寸的块(chunk), 并把尺寸相同的块分成组(chunk 的集合),每个 chunk 集合被称为 slab。
Memcached 的内存分配以 Page 为单位,Page 默认值为 1M,可以在启动时通过 - I 参数来指定。
Slab 是由多个 Page 组成的,Page 按照指定大小切割成多个 chunk。
6:Growth factor:来决定 thunk 的大小;
Memcached 在启动时通过 -f 选项可以指定 Growth Factor 因子。该值控制 chunk 大小的差异。默认值为 1.25。
通过 memcached-tool 命令查看指定 Memcached 实例的不同 slab 状态,可以看到各 Item 所占大小(chunk 大小)差距为 1.25
命令:# memcached-tool 127.0.0.1:11211 display
7:数据的过期方式;两种: Lazy expiration LRU
Lazy expiration : memcached 内部不会监视记录是否过期,而是在 get 时查看时间戳,检查记录是否过期,这种技术成为 Lazy expriation (懒惰的过期), 不会在是否过期监视上耗费 CPU 时间;
LRU:memecache 会优先使用已超时的记录空间,当即便如此,也会发生追加新记录时空间不足的情况,此时就需要使用 LRU (least recently used) 删除最近最少使用的空间,因此,当内存空间不足或者无法从 slab 获取到新得空间时,就会从最近未使用的记录中搜索,并将其分配给新的记录,从缓存实用角度来看,该模型十分理想;存进去数据后一直未使用的,会隔一段时间去查询下并标记,会让下次覆盖;
8:安装 memcached;
安装:yum install -y memcached libmemcached libevent
启动:systemctl start memcache
[root@localhost_001 ~]# yum list |grep memcached
libmemcached.x86_64 1.0.16-5.el7 base
libmemcached-devel.x86_64 1.0.16-5.el7 base
memcached.x86_64 1.4.15-10.el7_3.1 base
memcached-devel.x86_64 1.4.15-10.el7_3.1 base [root@localhost_001 yum.repos.d]# yum install -y memcached libmemcached libevent
[root@localhost_001 yum.repos.d]# systemctl start memcached
[root@localhost_001 yum.repos.d]# ps aux |grep memcached
memcach+ 1444 0.0 0.0 325604 1200 ? Ssl 18:59 0:00 /usr/bin/memcached -u memcached -p 11211 -m 64 -c 1024
root 1451 0.0 0.0 112720 968 pts/0 R+ 18:59 0:00 grep --color=auto memcached
[root@localhost_001 yum.repos.d]# netstat -lnpt |grep memcached
tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 1444/memcached
tcp6 0 0 :::11211 :::* LISTEN 1444/memcached
注释:如上图例,-u 指定以 memcache 用户运行,-p 监听的端口号,-m 指定内存大小,-c 指定并发数 (concurrency);
注释:如上图例,memcache 的监听端口是 11211,
9:那么如果想自定义监听端口或者内存大小并发数等;有如下两种方法:(memcached 没有配置文件)
1: 加上这个参数去启动;/usr/bin/memcached -u memcached -p 11211 -m 64 -c 1024
[root@localhost_001 yum.repos.d]# /usr/bin/memcached -u memcached -p 11211 -m 128 -c 2048
[root@localhost_001 yum.repos.d]# ps aux |grep memcached
memcach+ 1494 0.0 0.0 325604 1200 pts/0 Tl 19:06 0:00 /usr/bin/memcached -u memcached -p 11211 -m 128 -c 2048
root 1501 0.0 0.0 112720 968 pts/0 R+ 19:07 0:00 grep --color=auto memcached
2: 编辑 /etc/sysconfig/memcached 这个配置文件;
[root@localhost_001 yum.repos.d]# vim /etc/sysconfig/memcached
cat /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
注释:OPTIONS="" 表示监听的主机; -l 指定监听 IP, -d 后台启动;
注释:平时基本修改 -m 就可以了;
10:查看 memcached 的状态; memcache-tool IP:端口 stats
memcached-tool 127.0.0.1:11211 stats
[root@localhost_001 ~]# memcached-tool 127.0.0.1:11211 stats
#127.0.0.1:11211 Field Value
accepting_conns 1
auth_cmds 0
auth_errors 0
bytes 0
bytes_read 7
bytes_written 0
cas_badval 0
cas_hits 0
cas_misses 0
cmd_flush 0
cmd_get 0
cmd_set 0
cmd_touch 0
conn_yields 0
connection_structures 11
curr_connections 10
curr_items 0
decr_hits 0
decr_misses 0
delete_hits 0
delete_misses 0
evicted_unfetched 0
evictions 0
expired_unfetched 0
get_hits 0
get_misses 0
hash_bytes 524288
hash_is_expanding 0
hash_power_level 16
incr_hits 0
incr_misses 0
libevent 2.0.21-stable
limit_maxbytes 67108864
listen_disabled_num 0
pid 1826
pointer_size 64
reclaimed 0
reserved_fds 20
rusage_system 0.017159
rusage_user 0.012256
threads 4
time 1542199271
total_connections 11
total_items 0
touch_hits 0
touch_misses 0
uptime 344
version 1.4.15
注释:平时中重点关注两个参数: cmd_get get_hits
cmd_get 表示总的 get 次数;
get_hist 表示命中率;
一般用 get_hist 除以 cm_get 来计算命中率;
(2): 还可以使用 nc 命令: 安装: yum install -y nc
echo stats |nc 127.0.0.1 11211
[root@localhost_001 ~]# echo stats |nc 127.0.0.1 11211
STAT pid 1826
STAT uptime 832
STAT time 1542199759
STAT version 1.4.15
STAT libevent 2.0.21-stable
STAT pointer_size 64
STAT rusage_user 0.027198
STAT rusage_system 0.024725
STAT curr_connections 10
STAT total_connections 12
STAT connection_structures 11
STAT reserved_fds 20
STAT cmd_get 0
STAT cmd_set 0
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 0
STAT get_misses 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 13
STAT bytes_written 1024
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT bytes 0
STAT curr_items 0
STAT total_items 0
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT evictions 0
STAT reclaimed 0
END
可以看到 nc 命令查询的结果和 memcache 查询的结果是一样子的;
如果查看 libmemcached 这个包后,还可以查询它的服务状态;
memstat --servers=127.0.0.1:11211
[root@localhost_001 ~]# memstat --servers=127.0.0.1:11211
Server: 127.0.0.1 (11211)
pid: 1826
uptime: 1101
time: 1542200028
version: 1.4.15
libevent: 2.0.21-stable
pointer_size: 64
rusage_user: 0.039654
rusage_system: 0.027262
curr_connections: 10
total_connections: 13
connection_structures: 11
reserved_fds: 20
cmd_get: 0
cmd_set: 0
cmd_flush: 0
cmd_touch: 0
get_hits: 0
get_misses: 0
delete_misses: 0
delete_hits: 0
incr_misses: 0
incr_hits: 0
decr_misses: 0
decr_hits: 0
cas_misses: 0
cas_hits: 0
cas_badval: 0
touch_hits: 0
touch_misses: 0
auth_cmds: 0
auth_errors: 0
bytes_read: 30
bytes_written: 2068
limit_maxbytes: 67108864
accepting_conns: 1
listen_disabled_num: 0
threads: 4
conn_yields: 0
hash_power_level: 16
hash_bytes: 524288
hash_is_expanding: 0
bytes: 0
curr_items: 0
total_items: 0
expired_unfetched: 0
evicted_unfetched: 0
evictions: 0
reclaimed: 0
注释:有三种方法可以查询 memcache 的状态;
memcached-tool 127.0.0.1:11211 stats
echo stats |nc 127.0.0.1 11211
memstat --servers=127.0.0.1:11211
Cenos安装nodejs和nodejs依赖管理软件npm
Cenos安装nodejs和npm
安装依赖
~# yum install -y gcc gcc-c++ make cmake autoconf automake libpng-devel libjpeg-devel libtiff-devel jasper-devel freetype-devel openssl-devel
安装remi 软件仓库
~# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm ~# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm ~# rpm -ivh epel-release-6-8.noarch.rpm ~# rpm -ivh remi-release-6.rpm
查看状态
~# ls -1 /etc/yum.repos.d/epel* /etc/yum.repos.d/remi.repo
开启 remi 软件仓库
~# vi /etc/yum.repos.d/remi.repo
编辑[remi]下的enabled选项从0设为1
[remi]
…
enabled=1
…
查看安装状态
~# yum repolist
安装nodejs和nodejs依赖管理软件npm
~# yum install nodejs npm --enablerepo=epel
查看安装状态
~# node -v v6.6.0 ~# npm -v 3.10.3
OK, 大功告成!
linux中安装nodejs,卸载nodejs,更新nodejs,git
在Linux中安装、卸载、更新Node.js和Git的步骤如下:
- 安装Node.js:可以使用包管理器如apt(Debian或Ubuntu)或yum(Fedora或RHEL)进行安装。例如,在Ubuntu系统中,可以使用以下命令安装Node.js:
sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install npm
- 卸载Node.js:使用包管理器进行卸载。例如,在Ubuntu系统中,可以使用以下命令卸载Node.js:
sudo apt-get remove nodejs
sudo apt-get remove npm
- 更新Node.js:可以先卸载旧版Node.js,然后安装新版。也可以使用n模块进行更新:
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
- 安装Git:依然可以使用包管理器进行安装。例如,在Ubuntu系统中,可以使用以下命令安装Git:
sudo apt-get update
sudo apt-get install git
- 卸载Git:使用包管理器进行卸载。例如,在Ubuntu系统中,可以使用以下命令卸载Git:
sudo apt-get remove git
- 更新Git:可以先卸载旧版Git,然后安装新版。例如,在Ubuntu系统中,可以使用以下命令更新Git:
sudo apt-get remove git
sudo apt-get install git
请根据自己的Linux发行版和版本选择合适的命令。
mac安装nodejs以及配置环境,nodejs版本降级
一.nodejs的安装 1.下载nodejs 访问nodejs官网(https://nodejs.org/en/)选择合适,我选择是mac的 安装完成之后肯定要检查的,打开终端,分别输入 : node-v
npm -v
2.用brew安装nodejs a.安装brew 打开终端运行以下命令: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" b.然后查看一下是否安装成功,输入以下命令: brew -v 如果出现版本信息,就说明安装成功。 c.安装node.js 在终端中运行以下命令: brew install nodejs 检查安装是否成功 node-v
npm -v
3.用yarn安装nodejs a.安装yarn:curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash - b.安装nodejs:sudo yum install -y nodejs 检查安装是否成功 node-v
npm -v
二.配置node环境 例:export PATH=/usr/local/bin/node_modules/grunt-cli/bin:$PATH a. 打开配置文件 vi ./.bash_profile b. 添加一行PATH(按i进入insert才能编辑) PATH=$PATH:/usr/local/bin/
// 把/usr/local/bin/换成你的npm全局包路径,路径的查看方式看上面 c. 按esc退出insert,输入:wq,按回车,保存文件,配置成功
三.安装淘宝镜像 $ npm install -g cnpm --registry=https://registry.npm.taobao.org
四.nodejs版本降级 今天在运行yarn来安装node.js的时候,发现安装了最新的12版本,但是因为项目的原因,我需要node.js版本为8.0版本。我的安装命令为: 解决方法 npm install -g n sudo n 8.16.0 就行了。
今天关于第一章 Nodejs 介绍及安装和nodejs的安装教程的分享就到这里,希望大家有所收获,若想了解更多关于77:NoSQL 之 Memcached 介绍及安装、Cenos安装nodejs和nodejs依赖管理软件npm、linux中安装nodejs,卸载nodejs,更新nodejs,git、mac安装nodejs以及配置环境,nodejs版本降级等相关知识,可以在本站进行查询。
本文标签: