node

【NodeJS】学习笔记和参考资料

半城伤御伤魂 提交于 2019-12-18 18:31:41
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> NODE JS 笔记篇 |>>---------------------------------------------------------------------------------------------------- 1、相关基础命令行操作 Install express npm install -g express Create a new app express your_app cd into app directory cd your_app use npm link to resolve modules npm link express Set NODE_PATH=NODE_HOME\node_modules https://github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x renamed app.register() to app.engine() 2、Node和npm在 Mac 中的默认安装目录 Node was installed at /usr/local/bin/node npm was installed at /usr/local/bin/npm Make sure that /usr/local

LRU算法与增强

自古美人都是妖i 提交于 2019-12-18 17:45:11
概要 本文的想法来自于本人学习MySQL时的一个知识点:MySQL Innodb引擎中对缓冲区的处理。虽然没有仔细研究其源码实现,但其设计仍然启发了我。 本文针对LRU存在的问题,思考一种增强算法来避免或降低缓存污染,主要办法是对原始LRU空间划分出young与old两段区域 ,通过命中数(或block时间)来控制,并用一个0.37的百分比系数规定old的大小。 内容分以下几小节,实现代码为Java: 1.LRU基本概念 2.LRU存在问题与LRUG设计 3.LRUG详细说明 4.完整示例代码 1.LRU基本概念 LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据。常用于一些缓冲区置换,页面置换等处理。 一个典型的双向链表+HashMap的LRU如下: 2.LRU存在问题与LRUG设计 LRU的问题是无法回避突发性的热噪数据,造成缓存数据的污染。对此有些LRU的变种,如LRU-K、2Q、MQ等,通过维护两个或多个队列来控制缓存数据的更新淘汰。我把本文讨论的算法叫LRUG,仅是我写代码时随便想的一个名字。 LRUG使用HashMap和双向链表,没有其他的维护队列,而是在双向链表上划分young,old区域,young段在old段之前,有新数据时不会马上插入到young段,而是先放入old段,若该数据持续命中,次数超过一定数量

redis集群之REDIS CLUSTER

微笑、不失礼 提交于 2019-12-18 16:10:29
1. Linux系统配置 1.1. vm.overcommit_memory设置 overcommit_memory文件指定了内核针对内存分配的策略,其值可以是0、1、2。 0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。 1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。 2, 表示内核允许分配超过所有物理内存和交换空间总和的内存 jenkins_service@jenkinsservice:~/redis-3.0.1$ sudo sysctl vm.overcommit_memory=1 vm.overcommit_memory = 1 1.2. Transparent Huge Pages开启 THP(Transparent Huge Pages)是一个使管理Huge Pages自动化的抽象层。 目前需要注意的是,由于实现方式问题,THP会造成内存锁影响性能,尤其是在程序不是专门为大内内存页开发的时候,简单介绍如下: 操作系统后台有一个叫做khugepaged的进程,它会一直扫描所有进程占用的内存,在可能的情况下会把4kpage交换为Huge Pages,在这个过程中,对于操作的内存的各种分配活动都需要各种内存锁,直接影响程序的内存访问性能,并且,这个过程对于应用是透明的

链表

让人想犯罪 __ 提交于 2019-12-18 15:31:43
链表 链表是一种非常重要的线性数据结构,我们在实现栈和队列时使用的是动态数组实现的,这个动态数组是针对用户而言是动态的,实际上底层是静态的,是通过 resize() 操作去解决容量问题的。而链表则是一种真正的动态数据结构,它是这么一种数据结构,我们把数据存储在一个节点 (Node) 中,一个节点一般包含两部分的内容,一个是存储的数据,一个是它要指向的下一个节点 class Node { private E e ; private Node next ; } 一个节点指向一个节点,所以最后看起来就像是一个链,我们把这种数据结构称为链表 最后一个节点的下一个节点为 NULL ,表示后面没有节点了。它是一个真正的动态的数据结构,不需要处理容量的问题。但是它也有缺点,它没有数组那样快的查询能力,它要查询某个节点的数据,只能通过头结点一直寻找下来(后面我们将看到),所以它的查询速度比数组慢。 链表实现 现在我们将实现这么一个结构,首先设计好节点类 public class LinkedList < E > { //我们将Node设置为LinkedList的私有内部类 private class Node < E > { public E e ; public Node next ; public Node ( E e , Node next ) { this . e = e ; this .

windows安装nvm管理node版本

纵饮孤独 提交于 2019-12-18 14:28:46
1.卸载原本系统里面的nodejs 2.下载nvm安装包: https://github.com/coreybutler/nvm-windows/releases ---->nvm-setup.zip 3.将nvm安装包加压并安装,安装时注意安装目录必须为C:/跟目录,使用默认的路径会出错 4.安装完成后,点击C:\nvm目录下的install文件会弹出一个命令串口,这里会要求输入一个路径,不用管它直接回车,这里可能会弹出一个更改设置的窗口,不用管它- 允许就行了,操作完成后会在nvm目录中生成一个settings.txt文件 5.点开settings.txt更改内容如下: root: C:\nvm path: C:\Program Files\nodejs arch: 64 proxy: none node_mirror: http://npm.taobao.org/mirrors/node/ npm_mirror: https://npm.taobao.org/mirrors/npm/ 6. 点开环境变量配置查看环境是否自动配置,如未自动配置需要手动配置: 1. 变量名:NVM_HOME 变量值:C:\nvm 2. 变量名:NVM_SYMLINK 变量值:C:\Program Files\nodejs 3. path中加入 %NVM_HOME%;%NVM_SYMLINK%

Nodejs----注册登录

人盡茶涼 提交于 2019-12-18 13:58:24
这个小应用使用到了node.js bootstrap express 以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注明一下版本,因为express因为版本的不同使用的方式也不同,我这算是目前最新的了吧 还没有装express的可以移步到 这里 看看express框架的获取安装 1.简单地项目初始化 进入你的nodejs安装路径下边,如图,然后执行命令 express -e test (这里把项目名设置为test) 出现如上图所示,看到install dependencies没有,它说如果你想安装依赖就先进入项目test目录,然后执行 npm install安装依赖模块。 那就开始吧,网络环境差的可能安装会出错..出现很长一大串一般就行了 如此一来,项目初始已经完成,可以运行一下项目 npm start 看是否正常。 ok 还算正常,下面先来基本分析一下生成的初始项目 : 之前 那篇文章 已经说过 项目创建成功之后,生成四个文件夹,主文件app.js与配置信息文件packetage.json bin是项目的启动文件 ,配置以什么方式启动项目,默认 npm start public是项目的静态文件 ,放置js css img等文件 routes是项目的路由信息文件 ,控制地址路由 views是视图文件

前端构建工具gulp入门教程

爷,独闯天下 提交于 2019-12-18 13:33:44
最近想搞些自动化,网上搜了不少的关于gulp的攻略,然后结合自己的一些实践发出来。如果对你有帮助也别谢谢我。如果误导了你,也别喷我。。。。水平有限。呵呵 本文假设你之前没有用过任何任务脚本(task runner)和命令行工具,一步步教你上手Gulp。不要怕,它其实很简单,我会分为五步向你介绍gulp并帮助你完成一些惊人的事情。那就直接开始吧。 第一步:安装Node 首先,最基本也最重要的是,我们需要搭建node环境。访问 http://nodejs.org ,然后点击大大的绿色的 install 按钮,下载完成后直接运行程序,就一切准备就绪。 npm 会随着安装包一起安装,稍后会用到它。 第二步:使用命令行 也许现在你还不是很了解什么是命令行——OSX中的终端(Terminal),windows中的命令提示符(Command Prompt),但很快你就会知道。它看起来没那么简单,但一旦掌握了它的窍门,就可以很方便的执行很多命令行程序,比如Sass,Yeoman和Git等,这些都是非常有用的工具。 如果你很熟悉命令行,直接跳到步骤四。 为了确保Node已经正确安装,我们执行几个简单的命令。 node -v 回车(Enter),如果正确安装的话,你会看到所安装的Node的版本号,接下来看看npm。 npm -v 这同样能得到npm的版本号。 如果这两行命令没有得到返回

node-sass 安装失败的各种坑

你。 提交于 2019-12-18 13:30:42
开始的时候引入别人的一个项目 npm install npm run dev 启动项目 报错 > node build/dev-server.js Listening at http://localhost:8888 webpack: wait until bundle finished: /index.html webpack built 5301489d16ee90d86896 in 3165ms Hash: 5301489d16ee90d86896 Version: webpack 1.15.0 Time: 3165ms Asset Size Chunks Chunk Names app.js 1.96 MB 0 app ERROR in Cannot find module 'node-sass' @ ./src/common/scss/index.scss 4:14-124 13:2-17:4 14:20-130 ERROR in Cannot find module 'node-sass' @ ./~/vue-style-loader!./~/css-loader!./~/vue-loader/lib/style-rewriter.js?id=data-v-e0c3a2e6!./~/sass-loader!./~/vue-loader/lib/selector.js

C# TreeView根据设置的Name属性获取Node

坚强是说给别人听的谎言 提交于 2019-12-18 13:26:06
本文主要介绍在C#中,对TreeView根据设置的Name属性获取Node,并对Node进行操作。 TreeNode[] nodes = treeView2.Nodes.Find("nodeName", true); 然后即可通过nodes[0]对该节点进行操作。 注:如果所需要获取的节点没有子节点,也需要将searchAllChildren属性设置为true,然后所得到的第一个节点即为所需获取的节点。 来源: CSDN 作者: cchangcs 链接: https://blog.csdn.net/github_39611196/article/details/103588616

Node.js NPM 使用介绍

谁说我不能喝 提交于 2019-12-18 12:41:43
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用。 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。 由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入 "npm -v" 来测试是否成功安装。命令如下,出现版本提示表示安装成功: $ npm -v 2.3.0 如果你安装的是旧版本的 npm,可以很容易得通过 npm 命令来升级,命令如下: $ sudo npm install npm -g /usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js npm@2.14.2 /usr/local/lib/node_modules/npm 如果是 Window 系统使用以下命令即可: npm install npm -g 全局安装与本地安装 npm 的包安装分为本地安装(local)、全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如 npm install express # 本地安装 npm install express -g # 全局安装