GVKun编程网logo

第一章 Nodejs 介绍及安装(nodejs的安装教程)

11

如果您对第一章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的安装教程)

第一章 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 介绍及安装

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);memcachedredis 适合存储用户信息,比如用户会话 (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和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中安装nodejs,卸载nodejs,更新nodejs,git

在Linux中安装、卸载、更新Node.js和Git的步骤如下:

  1. 安装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
  1. 卸载Node.js:使用包管理器进行卸载。例如,在Ubuntu系统中,可以使用以下命令卸载Node.js:
sudo apt-get remove nodejs
sudo apt-get remove npm
  1. 更新Node.js:可以先卸载旧版Node.js,然后安装新版。也可以使用n模块进行更新:
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
  1. 安装Git:依然可以使用包管理器进行安装。例如,在Ubuntu系统中,可以使用以下命令安装Git:
sudo apt-get update
sudo apt-get install git
  1. 卸载Git:使用包管理器进行卸载。例如,在Ubuntu系统中,可以使用以下命令卸载Git:
sudo apt-get remove git
  1. 更新Git:可以先卸载旧版Git,然后安装新版。例如,在Ubuntu系统中,可以使用以下命令更新Git:
sudo apt-get remove git
sudo apt-get install git

请根据自己的Linux发行版和版本选择合适的命令。

mac安装nodejs以及配置环境,nodejs版本降级

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版本降级等相关知识,可以在本站进行查询。

本文标签: