自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

leedh_码农

done is better than perfect

  • 博客(64)
  • 收藏
  • 关注

原创 离开北上广,开启新生活

北漂的日子 年轻的时候,谁不想去北上广走一圈,正所谓“男儿何不带吴钩, 收取关山五十州” ,都是雄姿英发的年级 ,都是野心勃勃的战士。 刚开始的时候, 的确成长非常快, 大的城市,意味着更高一些的圈层, 曾经热衷于github呀,热衷于各种技术沙龙呀, 博客 ,搭建自己的网站 , 速度嗖嗖嗖的 生活上,更是过的优哉游哉 , 附上 帝都照片 和海底捞的日子可惜, 随着年岁增长, 学习的劲头渐渐淡去 ,难免有些划水的时光回...

2021-10-08 20:27:10 572

原创 MongoDB中副本集-Replication

之前的博文 MongoDB主从复制架构中 ,讲述了MongoDB用来实现数据冗余的一种方式,也提到了主从复制的缺点,当主节点出现故障时,数据库服务不可用,因此很多数据库也都选择了新的方式替代主从复制 , 比如MongoDB的复制集、redis的哨兵机制等,本文就是描述 MongoDB的复制集的相关特性。1. MongoDB中副本集的特点副本集(或者叫复制集,名字无所谓)是MongoDB用来实...

2019-10-18 19:39:41 407

原创 ubuntu中实测mongodb 的安装和简单配置

1. Ubuntu虚拟机的简单优化安装完ubuntu系统之后,略微不太友好,因此需要简单优化一下。语言支持 (language support)安装其他语言 :chinese (Simplified)菜单和窗口的语言,将汉语拖到第一行地区格式,添加汉语重启系统安装搜狗输入法下载安装包,安装完成终端输入 im-config , 选择输入法重启软件更新器,更新一下应用同理, ...

2019-10-16 16:35:30 204

原创 MongoDB中的主从复制架构

本文主要讲述什么是主从复制架构,为何采用这种架构, MongoDB如何搭建主从复制架构,需要进行怎样的过程,有哪些基本的命令,如何测试其效果。1. 单台服务器的局限在学习和开发测试中,是可以采用单台服务器,启动一个mongod服务器进程。但实际生产环境中,这样处理会存在很高的风险,比如服务器崩溃、访问不到了… 这样会影响到数据库服务的使用,也可能跟严重,比如硬盘坏了,不仅数据库服务无法...

2019-10-11 18:18:28 312

原创 Java连接MongoDB数据库的例子

之前的博文介绍了,MongoDB利用shell命令进行增删改查的的操作。实际上,更常用的是利用mongodb给的一些驱动插件,利用第三方的工具对MongoDB进行数据库的操作,本文就是利用java连接MongoDB数据库基本的步骤先下载mongodb-java的驱动,maven依赖如下<!-- mongo java框架jongo --> <dependency>...

2019-10-08 16:25:52 958

转载 数据库中事务的隔离级别

数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。√: 可能出现    ×: 不会出现脏读不可重复读幻读Read uncommitted√√√...

2019-10-08 11:50:42 102

转载 Mongodb3.6中如何处理上层事务

在早期的mongodb中,为了性能,放弃了事务,基本上交给mongo的一些工具来处理,所以呢,基本上事务性要求高的数据,不适用于mongo ,通常用MongoDB记录一些日志记录等。 后来的版本中呢,逐渐加强了事务处理,下边的文章中,就是转载自 mongodb中文社区上的 Mongodb事务模型分析 本文基于Mongodb3.6,对于Mongodb上层事务中会让人困惑的几点进行源码层面的...

2019-10-08 11:19:32 874

原创 MongoDB中聚合和MapReduce

MongoDB作为一款数据,拥有一套聚合的操作构件,也有一些聚合函数,而MapReduce是时下最流行的聚合工具,两者的结合,会产生怎样的火花1. MongoDB中的聚合函数和聚合框架的关系mongodb提供了一些聚合函数,不过很多功能都被聚合构件给实现了,所以,聚合构件和聚合函数是目的是一样,常见的聚合函数有 group 、count、distinct等,接下来就简单聊一下求文档...

2019-09-28 17:22:04 245

原创 浅谈一下MongoDB中的聚合

很多时候,从数据库中查出来的数据不一定满足我们的需求,需要进行再次二次加工,比如求和,分组,排序,分页等。这里就由此展开,说一下MongoDB中如何处理聚合,常用的函数、常用的聚合框架,并简单说一下MapReduce1. 先提一下,何为聚合概念和例子其实单纯说概念,有点绕,但实际上已经用了很多次了,比如mysql中我们对结果集进行再次加工,举例来说select avg(salary) ...

2019-09-28 16:45:27 262

原创 mongoDB中的特殊索引

本片文章,主要去了解一下mongoDB中一些相对特殊的索引。使用面没那么广,适用于特定场合下,比如类队列数据的固定集合、TTL索引、简单字符串搜索的全文本索引等,这种情形下,会有对应的特殊索引.1. mongoDB中固定集合固定集合的特点和创建方式mongodb中 普通集合是可以动态创建的,可以自增长。此外,mongodb中也有 一种固定大小的集合,叫固定集合在创建的时候,指定大小...

2019-09-27 16:02:03 127

原创 mongoDB中常见的几种索引

数据库中,会有好几种索引,比如唯一索引,普通字段上的索引等1. 唯一索引和mysql中唯一索引用法类似, 用来保证集合中每一个document的指定键都有唯一值,比如 Id字段,同样,如果某一个字段设置了唯一索引,那么只可以插入相同的值一次,如果有一个null,则不允许再次插入该键为null的记录 比如一个网站注册用户,可以用手机号或者邮箱,然后手机号和邮箱需要做唯一索引,此时就会存在一个问...

2019-09-26 00:36:17 1201

原创 研究一下MongoDB中的复合索引

上边讲述了mongoDB中也可以用索引提高查询速度,并简单了解了如何利用explain去分析查询语句,需要注意的一点,查询条件key上有索引才会提高效率 。简单的字段索引,比如在name字段建立索引,用name查询时效率肯定块,不过 如果是同时用多个字段查询的时候,还能不能用上索引呢, 接下来,我们就去研究一下 ”复合索引“1. 先引出问题索引与查询字段的先后顺序有关么比如下边的数据结构...

2019-09-25 23:45:17 1835 1

原创 在mongoDB中的创建索引,利用explain()优化查询

对于任何一个数据库, 不管是SQL型还是NOSQL型,为了提高查询效率, 都需要对索引有一定了解 ,对于mongoDB ,也是可以利用索引去优化查询,实际上,mongoDB中索引和mysql等索引很多地方都是共通的1. mongoDB中的索引使用索引的优势不用索引,查询的时候会进行”全表扫描“ , 倘若1000万条数据,会扫描整个1000万数据,从中筛选,速度可想而知 。索引可以根据给...

2019-09-25 17:08:57 413

原创 shell脚本中mongoDB查询详解

1. 基本的查询shell命令 :“find"或"findOne”findOne和 findmongoDB中查询命令是find ,基本语法如下db.collectionName.find()上边的语句会返回这个集合中所有的document , 上边的语句中没有指定document , 默认就是 db.collectionName.find({})如果想要查询比如 , age是14的学...

2019-09-24 21:23:40 2755

原创 mongo中增删改的高阶用法

之前的博文 ”MongoDB基本的增删改“介绍了mongodb如何处理基本的修改操作, 但是对于一些相对复杂的操作并没有说,比如批量、优化等。本文就主要讲一下如何进行这些处理1. 批量插入insertManyshell中,可以直接用这个函数实现,语法与insert类似db.peo.insert({_id:11,name:'z1'}) // 单条插入db.peo.insertMany(...

2019-09-23 20:48:17 513

原创 深入理解mongo中的数据类型,了解Mongo的Id生成策略

mongoDB的document与javaScript中对象类似,document类似JSON, 但是 JSON本身有一些局限性, 比如JSON数据类型相对较少, 没有日期类型;只有一种数字类型,无法区分浮点和整数,无法表示通用类型,比如正则表达式或者函数MongoDB中,document在保留JSON key-value的基础上,添加了一些数据类型 ,下面就展开说一下,mongo中的基本数据...

2019-09-20 19:07:23 961

原创 MongoDB基本的增删改

mongoDB是一个非关系型数据库,自然, 数据库需要的增删改查和事务,肯定都可以满足,只不过适应于异于普通数据库的结构, mongoDB的增删改查采用自己的语法,从整体结构上看,类似于javascriptmongoDB提供了shell脚本、和java对接的API、和python对接的,各种方式都有,非常方便灵活。这里的 “增删改查” 均是基于“mongo的shell脚本”。 下边简单整理一些基...

2019-09-20 16:37:24 142

原创 mongoDB的服务器端安装和客户端连接

前边的博文讲述了mongo的产生背景,和关系型数据类比,mongo的数据库结构。本文中,从实际应用的角度,讲述如何安装mongo、服务器端如何启动、客户端按照mongo并连接到服务器,mongo的shell脚本安装mongoDB服务器实际开发的服务器肯定不敢乱动,只敢在我本地的环境安装一下,生产环境一般是linux, 安装过程类似,只不过细节不同,网上也有很多例子,比如 “服务器搭建–Lin...

2019-09-19 20:38:42 440

原创 MongoDB的核心概念和术语解释

MongoDB之所以流行,是因为它的特点 : 灵活、强大、易扩展的通用型数据库 。应用面很广。可以做一个小型项目的数据库;处理网站实时数据,处理实时的数据插入、更新、查询作为缓存层, mongo是介于关系型和非关系型数据库之间,可以作为持久化缓存层适合多态服务器的数据库,比如几十台服务器的数据库,支持MapReduce说了这么多,MongoDB是什么,简单说一下MongoDB...

2019-09-19 18:58:20 1048

原创 mongoDB的登场

身处在一个互联网急速发展的今天,记得刚毕业的时候,公司还是用MYSQL+ Spring +hibernate用一台服务器,建立备份数据,避免出现大量的读取和不时地宕机后来,发现查询太多了,于是加了一份缓存,记得还是用spring + EhCache , 就是hibernate的一个缓存框架,在dao层添加缓存,传入相同参数时无需查询数据库,直接从缓存中获取,一定程度上提高了效率简单配置如下 :...

2019-09-19 15:21:14 116

转载 Mysql中 MyISAM和InnoDB的对比了解

1、MyISAM:默认表类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法。不是事务安全的,而且不支持外键,如果执行大量的select,insert MyISAM比较适合。2、InnoDB:支持事务安全的引擎,支持外键、行锁、事务是他的最大特点。如果有大量的update和...

2019-09-19 14:42:21 133

原创 Js应用prototype扩展内建对象

JavaScript 中,内建对象的构造器函数(例如 Array、 String、 Object 和Function)都是可以通过其原型来进行扩展的例子比如扩展Array构造函数,添加一个功能 : 判断数组中是否存在Array.prototype.inArray = function(needle) { for (var i = 0, len = this.length; i &...

2019-09-18 17:16:10 115

原创 Javascript 中ajax请求的回调金字塔和Promise

在之前的博文中,我们了解了,Js是一门单线程语言,不过存在一些异步执行的方法,它们会放到callback queue 中,等主线程stack中任务执行完成,再去执行callback queue 。 但是如果需要callback queue中的任务返回的数据怎么办,比如下边的回调金字塔什么是回调金字塔举例说明存在一个需求,比如需要拿到回调中数据,根据数据判断是否显示一个banner图,这就...

2019-09-18 17:13:34 166 2

原创 函数节流和防抖

事件 , 鼠标、滚动条等如果操作dom, 需要持续运算,会影响性能,本章主要就是优化性能函数节流不是输入一个,就立刻执行,比如按着一个字母不放不会一直执行利用时间戳 function throttle(fn, wait) { var pre = 0; return function () { var now = new Date(); if (...

2019-09-18 14:31:34 99

原创 详细了解Javascript的定时器

定时器的语法,传参,以及用处定时器传参语法第一个参数 :可以是直接执行的代码,但需要放在引号内(js内部会用eval把字符串转成真正代码)可以是function声明的函数,也可以是个函数名setTimeout('console.log("第一个参数为一条代码,要放在引号里面")',500); // 字符串setTimeout(()=>console.log('第一个参...

2019-09-18 11:45:23 116

原创 js中任务队列分类及特点

任务队列 (消息队列)任务队列介绍是一个有序的任务集合列表(放的都是异步任务),在js中任务队列可以有多个当代码里有异步操作的时候,就会把异步操作分发到对应的任务对列里每一个任务都会有任务源一个队列里可以放多个任务,任务的读取方式为先进先出Macro Task 和 Micro Task宏任务微任务DOM操作 (UI rendering)Promise...

2019-09-17 20:09:48 618 2

原创 JavaScript中事件运行机制详解

上边博文中,说了JavaScript 的内存模型。 简单总结如下表格用户接口比如浏览器顶部栏等一些接口––Call StackJavaScript中的方法调用栈,记录方法调用的trace––HeapJavaScrip中的堆结构,主要保存对象,对象的引用保存在Stack中––Web APIs浏览器提供的一系列接口,比如Canva...

2019-09-17 20:08:00 266

原创 理解JavaScript的内存模型和事件循环

所有的编程语言都会存在内存生命周期,不同的是 部分语言会暴露出来,比如C。而有些语言是将具体细节进行隐藏,用户只会看到变量定义,赋值,对象的创建,不会关注变量创建的时候,内存如何处理,比如Java和JavaScript 。 接下来, 简单描述一下Js的内存先简单说一下,JavaScript的内存结构JavaScript的内存结构之前的博客,在说Js上下文对象时,简单提到了Javascr...

2019-09-17 15:49:19 145

原创 Js中call和apply和bind

js中的call(), apply()和bind()是Function.prototype下的方法,都是用于改变函数运行时上下文,最终的返回值是你调用的方法的返回值改变函数运行时上下文动态改变 "调用函数的this对象” 的指向函数对象 : 利用函数的原型 创建对象function cat(){} cat.prototype = { food :"fish",...

2019-09-16 16:19:00 295

原创 008 - 变量的作用域链和闭包

当我们了解函数之后,接下来说一下,和函数有关的变量作用域以及闭包问题执行上下文这一部分 : 参考网上 “深入理解javascript之执行上下文(execution context)” 。该博文对于 执行上下文对象的描述较为详细,不过略显啰嗦,简单整理,突出一下 什么是 执行上下文,在JavaScript引擎中如何设计的,函数调用的时候,上下文对象的创建过程什么是执行上下文调用一...

2019-09-11 19:04:08 108

原创 007 - JavaScript高阶函数

在Js中,函数调用是非常轻松的一件事,变量可以存储函数,可以直接用变量加()操作符调用 var d = function(a) { console.log(a) } var e = d; //将函数赋值给一个变量console.log(typeof e); //输出 functione(1); //执行函数 输出 1这和Java是不太一样的,Java如果想调用函数,实际上比Ja...

2019-09-08 16:34:19 72

原创 006 - JavaScript函数传参和一些内置函数

对Java有一定使用了解之后,从Java角度看Javascript,其实会有很多类似的地方。身为一门编程语言,前边说了面向对象的Js , 继续说,本章了解一下 Js这门语言是如何处理函数这一块Js中函数函数传参问题函数可以定义多个参数,调用时不传,默认为undifined调用时,传参多了,不会报错,也没有效果 function sum(a, b) { return...

2019-09-08 14:42:25 246

原创 005 - Js中继承的实现方式和优化

Js中的继承上边部分简单介绍了下, Js中几个和继承有关的名词,简单整理如下prototypeJs中函数特有一个属性,指向这个函数的原型对象_proto_Js中对象特有的一个属性,指向对象的原型对象constructorJs对象特有的一个属性,指向这个对象的构造函数,每个对象都会有构造函数,只不过函数对象的构造函数是其自身注意 : 和Java不一样的...

2019-09-05 21:27:31 120

原创 004 - 深入理解Js中原型链和继承

Js 是 一种 直译式脚本语言 , 执行速度快。同时呢,利用原型链又很巧妙的实现了继承,接下来,简单说一下 Js是如何实现继承的了解Js继承,就先明白 “为什么说 Js是基于原型链的语言”什么是原型链prototype:JavaScript 中的每个函数中都有 prototype 属性, 这是Js中函数的一个属性 (至于函数的其他属性,在函数一节中讲述,这里不多提,只是了解一些此属...

2019-09-05 21:22:04 119

原创 003 -面向对象的Js

当熟悉了Java语法,从 java角度去看Js,发现存在很多相似之处,比如 整体上看Js也是一种面向对象的语言,只不过 身为一种解释执行的语言,没有必要做的和Java那么复杂,因此 用了一些的很巧妙的简化从面向对象的角度看Js什么是面向对象面向对象 的语言,只要的特点就是 继承 、 封装 、 多态。这里就不多说了。Js视角看面向对象上边简单说了一下,面向对象语言特点,接下来...

2019-09-04 19:17:14 111 2

原创 001 - BOM和DOM

在开发过程中,写过一些基础的Js逻辑, 结合网上资料,做一个JS有关的专题,非专业前端人员 ,一些不足之处,请指出,大家共同进步,谢谢BOM浏览器对象模型 (Brower Object Model), 主要用来实现Js和浏览器之间的对话, 没有官方标准 (开发中以Chrome为主)window对象非常常用的一个对象 , 代表着浏览器的窗口, 所有的全局变量本质上就是 win...

2019-09-04 16:33:15 135

原创 002 - JS基础知识

js中基础知识,只记录一些容易忽视的地方变量变量命名 :倾向于使用以小写字母开头的驼峰大小写变量名区分大小写的,准确说 Js中用标识符 命名 变量 关键字、函数,而Js中标识符是对大小写敏感的。虽然,变量命名时 ,js不鼓励使用$命名,直接用​它命名函数很常见var $test = function (){alert('用$可以命名函数')}var $_fun1 ...

2019-09-03 20:14:17 178 1

原创 将博客搬至CSDN

博客园承载了我青春的梦想吧, 在这里结识了很多朋友,也学到了不少知识,美中不足吧,现在的博客园因循守旧,感觉使用起来的的确确不是很方便了,对不起,可能还会回来,...

2019-09-03 15:47:00 86

原创 010 - 多线程交互

1 - 使用join线程间排队Join () :public final void join() throws InterruptedExceptionAPI中意思是,join()是等待线程结束示例代码class Sleeper extends Thread{ public void run(){ println("Sleeper线程id=" + Thread....

2019-09-03 15:14:59 116

原创 009 - synchronized原理

本片博文 ,参考 [译]Java虚拟机是如何执行线程同步的 ,加一些个人理解。1 - Synchronized 简介本文 参考 synchronized 理解synchronized关键字在需要原子性、可见性和有序性这三种特性的时候都可以作为其中一种解决方案,看起来是“万能”的。的确,大部分并发控制操作都能使用synchronized来完成 ,但实际上synchronized有...

2019-09-03 15:13:19 94

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除