<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[nodeDocker的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/nodeDocker</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; nodeDocker]]></copyright><item><title><![CDATA[gin框架学习笔记]]></title><link>https://blog.youkuaiyun.com/nodeDocker/article/details/122677724</link><guid>https://blog.youkuaiyun.com/nodeDocker/article/details/122677724</guid><author>nodeDocker</author><pubDate>Tue, 25 Jan 2022 00:25:01 +0800</pubDate><description><![CDATA[gin框架学习笔记
官网review

gin 是用go编写的web框架，由于httprputer(基于radix树路由)速度快了40倍，支持中间件，路由组处理，json等多方式验证，内置了json/xml/html等渲染，是一个易于使用的go 框架
如果是用常量，比如http.statusOk       impport “net/http”
gin使用默认的encoding/json作为默认的json包，但是可以通过其他标签构建改变他 （jsoniter: https://github.com/json]]></description><category></category></item><item><title><![CDATA[10分钟掌握sentry]]></title><link>https://blog.youkuaiyun.com/nodeDocker/article/details/121390867</link><guid>https://blog.youkuaiyun.com/nodeDocker/article/details/121390867</guid><author>nodeDocker</author><pubDate>Wed, 17 Nov 2021 23:56:42 +0800</pubDate><description><![CDATA[gtihub地址：
Sentry is a service that helps you monitor and fix crashes in realtime. The server is in Python, but it contains a full API for sending events from any language, in any application.
简单总结： sentry是一个能够实时监控的服务，可以使用于一些语言和服务
目前可以应用的服务如下
简介：
Sentry 是一个]]></description><category></category></item><item><title><![CDATA[手撕redis单实例分布式锁(node)]]></title><link>https://blog.youkuaiyun.com/nodeDocker/article/details/108537123</link><guid>https://blog.youkuaiyun.com/nodeDocker/article/details/108537123</guid><author>nodeDocker</author><pubDate>Fri, 11 Sep 2020 17:57:05 +0800</pubDate><description><![CDATA[单实例分布式锁实现应用场景redis分布式锁实现思路redis单实例实现过程解决占位问题解决死锁问题释放锁问题场景与解决方案网络闪断造成死锁错误的删除锁手撕单实例
应用场景
用于抢红包、抢票类似的服务，商城抢货。等场景中，对同一资源进行读写操作，避免不了的一个就是资源竞争问题，通过引入分布式锁这一概念，可以解决数据一致性问题。
注：
如果是redis集群，每个redis master节点都是独立存储的，这种场景用单实例会有安全性问题
redis分布式锁实现思路
实现分布式锁的方式有很多，类似: 数据库（mo]]></description><category></category></item><item><title><![CDATA[遇事不决看源码]]></title><link>https://blog.youkuaiyun.com/nodeDocker/article/details/108391641</link><guid>https://blog.youkuaiyun.com/nodeDocker/article/details/108391641</guid><author>nodeDocker</author><pubDate>Thu, 03 Sep 2020 20:06:00 +0800</pubDate><description><![CDATA[js常用源码实现简介实现一个new源码实现Object.create实现instanceofbind实现call实现apply实现结束语
简介
手撕常用源码为面试中必备的技能，欢迎各位大佬一起探讨指正～
实现一个new源码
首先了解new对实例化构造函数时内部实现了啥：

创建一个控对象
将构造函数的原型对象添加到这个对象的隐形属性__proto__
执行构造函数当函数返回对象的时候，返回对象
当函数返回非对象的时候返回这个ob j

具体代码实现逻辑如下
// es5写法
function newp(Co]]></description><category></category></item><item><title><![CDATA[node高并发原理机制]]></title><link>https://blog.youkuaiyun.com/nodeDocker/article/details/107698773</link><guid>https://blog.youkuaiyun.com/nodeDocker/article/details/107698773</guid><author>nodeDocker</author><pubDate>Thu, 30 Jul 2020 19:52:08 +0800</pubDate><description><![CDATA[node高并发原理机制概念node架构图单线程、异步事件循环事件驱动+事件循环实现高并发
概念

事件循环：
事件循环是一种编程构造，用于等待和分派程序中的事件或消息, 事件循环使Node.js可以通过将操作转移到系统内核中来执行非阻塞I/O操作（尽管JavaScript是单线程的）。
事件队列：
当用户的网络请求或者其它的异步操作到来时，node都会把它放到Event Queue之中，此时并不会立即执行它，代码也不会被阻塞，继续往下走，直到主线程代码执行完毕。
任务队列：
任务队列"是一个事件的队列（也可]]></description><category></category></item><item><title><![CDATA[redis基于近似LRU算法以及LFU算法的内存淘汰策略]]></title><link>https://blog.youkuaiyun.com/nodeDocker/article/details/107673664</link><guid>https://blog.youkuaiyun.com/nodeDocker/article/details/107673664</guid><author>nodeDocker</author><pubDate>Wed, 29 Jul 2020 19:52:03 +0800</pubDate><description><![CDATA[redis淘汰策略优化redis配置内存对应终端操作：allkeys-lru 策略 vs noeviction(默认策略)allkeys-lru 策略noeviction(默认策略)：LRU算法:内存淘汰终端命令：
redis配置内存
Redis是基于内存的key-value数据库，因为系统的内存大小有限，所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小。
对应终端操作：
config set maxmemory 100mb 设置redis最大内存
config get maxmemo]]></description><category></category></item><item><title><![CDATA[gitlab上创建项目]]></title><link>https://blog.youkuaiyun.com/nodeDocker/article/details/107346012</link><guid>https://blog.youkuaiyun.com/nodeDocker/article/details/107346012</guid><author>nodeDocker</author><pubDate>Wed, 15 Jul 2020 08:59:37 +0800</pubDate><description><![CDATA[git 创建项目1. 添加个人ssh2. 在本地主机并设置下git的用户名和邮箱3. 新建project4. 新建群组项目5. 添加群组成员6.开发者操作总结创建一个合并请求如果项目在本地已经存在，需要导入到gitlab，可以通过命令直接将项目导入上去如果已经拉取过远程仓库，每次在本地编辑代码之前，应该从远程获取最新版本并merge到本地项目push到远程仓库
1. 添加个人ssh
终端操作

命令ssh-keygen.exe –t rsa生成SSH公钥
-&gt;   ~/.ssh打开隐试文件夹     ]]></description><category></category></item><item><title><![CDATA[js数组方法应用场景汇总]]></title><link>https://blog.youkuaiyun.com/nodeDocker/article/details/107220226</link><guid>https://blog.youkuaiyun.com/nodeDocker/article/details/107220226</guid><author>nodeDocker</author><pubDate>Thu, 09 Jul 2020 09:07:18 +0800</pubDate><description><![CDATA[js arary方法、应用场景汇总数组的创建数组的元素的访问数组元素的添加数组元素的删除 (调用方法后数组形式返回所移除的元素， 原数组移除元素)数组的截取和合并数组的拷贝数组元素的字符串化查询元素有没有在数组中数组累加随机返回数组中数据数组的3个属性（length、prototype、constructor）
数组的创建

var arrayObj = new Array();
创建一个数组
var arrayObj = new Array([size]);
const arr = Array(100)
]]></description><category></category></item><item><title><![CDATA[node与java区别（语言、生态、数据库、性能、开发效率，5个方面）]]></title><link>https://blog.youkuaiyun.com/nodeDocker/article/details/106901348</link><guid>https://blog.youkuaiyun.com/nodeDocker/article/details/106901348</guid><author>nodeDocker</author><pubDate>Mon, 22 Jun 2020 14:43:38 +0800</pubDate><description><![CDATA[5个方面区别语言对比生态数据库操作性能开发效率对比图片
语言对比

js事动态语言，java是动态语言（不能改变它的类型的语言，是静态语言；能够随时改变它的类型的语言，是动态语言），要到运行时才知道类型错误，测试就得些的更好更详细。
js解释型语言, 编写的程序不需要编译。解释型语言在运行的时候才翻译,  java编译型语言, 写的程序执行之前，需要一个专门的编译过程，把高级语言翻译成机器语言(解释型语言的特点是，跨平台、知识产权保护性弱、运行效率低， 编译型语言特点是，跨平台能力差、知识产权保护性强、运行]]></description><category></category></item><item><title><![CDATA[箭头函数vs普通函数详解]]></title><link>https://blog.youkuaiyun.com/nodeDocker/article/details/105543636</link><guid>https://blog.youkuaiyun.com/nodeDocker/article/details/105543636</guid><author>nodeDocker</author><pubDate>Wed, 15 Apr 2020 20:25:26 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[函数this指向问题]]></title><link>https://blog.youkuaiyun.com/nodeDocker/article/details/105525614</link><guid>https://blog.youkuaiyun.com/nodeDocker/article/details/105525614</guid><author>nodeDocker</author><pubDate>Wed, 15 Apr 2020 00:47:44 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[npm 依赖上传及规范]]></title><link>https://blog.youkuaiyun.com/nodeDocker/article/details/105421164</link><guid>https://blog.youkuaiyun.com/nodeDocker/article/details/105421164</guid><author>nodeDocker</author><pubDate>Thu, 09 Apr 2020 21:54:38 +0800</pubDate><description><![CDATA[npm上传规范一：简介二：常用命令三： 上传包之npm四.  npm的版本控制规范npm有一套自己的版本控制标准 具体体现为：五： 上传依赖时需改下载仓库附上小弟的npm地址，哈哈哈
一：简介
npm是javascript的包管理工具，是前端模块化下的一个标志性产物
简单地地说，就是通过npm下载模块，复用已有的代码，提高工作效率
二：常用命令
  1.  npm install          下载包
  2.  npm unistall       删除包
  3.  npm login       ]]></description><category></category></item><item><title><![CDATA[写了这么久代码你了解package.json吗？]]></title><link>https://blog.youkuaiyun.com/nodeDocker/article/details/105421106</link><guid>https://blog.youkuaiyun.com/nodeDocker/article/details/105421106</guid><author>nodeDocker</author><pubDate>Thu, 09 Apr 2020 21:52:27 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[nanoid + axios 完成外部接口调用以及日志记录]]></title><link>https://blog.youkuaiyun.com/nodeDocker/article/details/105401467</link><guid>https://blog.youkuaiyun.com/nodeDocker/article/details/105401467</guid><author>nodeDocker</author><pubDate>Thu, 09 Apr 2020 00:44:24 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[利用node原生依赖crypto完成加密解密]]></title><link>https://blog.youkuaiyun.com/nodeDocker/article/details/105401317</link><guid>https://blog.youkuaiyun.com/nodeDocker/article/details/105401317</guid><author>nodeDocker</author><pubDate>Thu, 09 Apr 2020 00:30:47 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[js单元测试（ava&&nyc）]]></title><link>https://blog.youkuaiyun.com/nodeDocker/article/details/104958605</link><guid>https://blog.youkuaiyun.com/nodeDocker/article/details/104958605</guid><author>nodeDocker</author><pubDate>Thu, 19 Mar 2020 01:42:22 +0800</pubDate><description><![CDATA[测试用例ava测试代码覆盖率查询


]]></description><category></category></item><item><title><![CDATA[node原生方法修改url]]></title><link>https://blog.youkuaiyun.com/nodeDocker/article/details/104853646</link><guid>https://blog.youkuaiyun.com/nodeDocker/article/details/104853646</guid><author>nodeDocker</author><pubDate>Sat, 14 Mar 2020 01:17:41 +0800</pubDate><description><![CDATA[node原声的方法有它默认的排序host + path + hash， 如下图，因为项目需要更改path到hash后面，最后采取node原生url规则拼接。


]]></description><category></category></item><item><title><![CDATA[不一样的帅气，不一样的mongo schema]]></title><link>https://blog.youkuaiyun.com/nodeDocker/article/details/104832793</link><guid>https://blog.youkuaiyun.com/nodeDocker/article/details/104832793</guid><author>nodeDocker</author><pubDate>Fri, 13 Mar 2020 01:43:20 +0800</pubDate><description><![CDATA[让你写出高逼格的schema创建规则


]]></description><category></category></item><item><title><![CDATA[mongoose实现mongo表关联（populate）]]></title><link>https://blog.youkuaiyun.com/nodeDocker/article/details/104810350</link><guid>https://blog.youkuaiyun.com/nodeDocker/article/details/104810350</guid><author>nodeDocker</author><pubDate>Thu, 12 Mar 2020 01:46:43 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[建立常用的mongo索引]]></title><link>https://blog.youkuaiyun.com/nodeDocker/article/details/104765698</link><guid>https://blog.youkuaiyun.com/nodeDocker/article/details/104765698</guid><author>nodeDocker</author><pubDate>Tue, 10 Mar 2020 00:42:52 +0800</pubDate><description><![CDATA[mongo索引建立索引方式索引属性索引类型(6种常用)1. 单字段索引2. 唯一索引3. 复合索引查询需求4. 多key索引5.部分索引6. 稀疏索引应用场景：建立索引注意事项
建立索引方式
1.  是在schema定义字段时
2.  通过index方法给schema添加
3.  db.modle.creatIndex({filed: 1}) mongo shell添加索引
索引属性
1. index: 布尔值        是否对这个属性创建索引
2. unique: 布尔值     是否对这个属性创建唯]]></description><category></category></item></channel></rss>