4 hello_bravo_

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 1w+

mongodb索引初探

文章目录基础理论知识索引作用索引的介绍索引的类别单字段索引复合索引查询分析实际场景分析最近负责解决公司一些mongodb慢查询的问题,解决过程中发现mongodb的索引还有很多特性是可以挖掘的,如果只是了解而不是熟练掌握,那感觉之前花费的功夫就都浪费了,所以决定集中写一篇有关mongodb索引的文章。基础理论知识索引作用索引主要用于在mongodb数据库中执行高效查找,在没有索引的情况下在mongodb中查找数据需要遍历整个collection(相当于mysql的表)的每条document(相当于m

2020-05-16 21:12:22

mongodb可以轻松修改旧表字段的原因

这里写自定义目录标题疑问mongodb的介绍简介体系结构解答疑问公司有用到mongodb数据库,最近经常有需求要在原先已经存在大量数据的表中新增字段,所以想探究一下这样子做的效率如何mongodb的介绍简介MongoDB是一个文档数据库,具有您所需的查询和索引所需的可伸缩性和灵活性体系结构MongoDB 的逻辑结构是一种层次结构。主要由:文档(document)、集合(collec...

2020-05-04 15:26:16

redis的zset解析

文章目录简介zset的常用命令zset结构分析ziplistdictskiplist最近工作中使用了redis的zset数据结构,为了能够熟练清晰的运用这个数据结构,总结如下。简介zset是一个有序集合,每一个成员有一个分数与之对应,成员不可以重复,但是分实时可以重复的,zset会自动用分数对成员进行排序。zset的常用命令1.zadd添加语句zadd key score member...

2020-05-02 15:36:47

mongodb学习--会话模式

初次使用mongodb,对很多的东西都不了解,在此做个学习记录使用的包是mgogolang连接mongodb会话一致性的三种模式strong强一致性模式建立的会话,将始终使用唯一的连接对主服务器进行读写,从而使读写完全一致,使数据保持有序,并始终是最新更新的状态。就分配负载而言,这无疑是没有任何益处的,但这种方式却是读写数据最有保证的。Monotonic单调一致性模式读取的数据并不是...

2020-04-18 14:59:18

Go实现设计模式--命令模式

文章目录关于命令模式的例子逻辑关系定义关于命令模式的例子客户点单,创造订单给服务员,服务员将订单给厨师,厨师烹饪。用户使用遥控器,创造命令对象(关电视)给遥控器,遥控对象(电视)关闭。遥控器代码的简单示例:逻辑关系实现遥控器,遥控器有插槽,一个插槽对应一个command对象,插槽的下按对应command对象的命令,这样遥控器不用管这个命令的具体实现,只要调用自己的插槽就可以了。这里的...

2020-04-05 20:04:56

Go实现设计模式--单例模式

文章目录定义介绍代码示例定义确保一个类只有一个实例并提供一个全局访问点。介绍意图:再项目中有线程池,缓存,对话框等,这类对象只能有一个,如果创造多个就会有许多问题,所以有了单例模式。关键代码(仅仅针对golang):在方法中要有getInstance()来创建对象,且为了防止多线程错误记得加锁代码示例这个页面的作者将代码写的很详细了,可以前往参考https://blog.cyeam...

2020-03-28 11:02:27

Go实现设计模式--工厂模式

文章目录定义实例剖析问题1 简单工厂的学习分析1行动1问题2分析2行动2定义定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。实例剖析问题1 简单工厂的学习你有一个披萨店,你的披萨店有orderPizza()函数,用于新建一个披萨,旧的代码如下(此处简化书上的代码)orderPizze(ptype string)pizza{ Pizza ...

2020-03-22 16:47:23

Go实现设计模式--装饰者(器)模式

文章目录定义介绍代码示例定义动态的将责任附加到对象上。若要拓展功能,装饰者提供了比继承更有弹性的替代方案。介绍意图:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。主要解决:一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。何时使用:在不想增加很多子类的情况下扩展类。如何解决:将具体功能...

2020-03-18 23:35:26

Go实现设计模式--观察者模式

@TOC定义当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。介绍意图 :定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。何时使用:一...

2020-03-14 16:14:53

Go实现设计模式--策略模式

go语言中有方法和接口方法:在函数的func和函数名间增加一个特殊的接收器类型,接收器可以是结构体类型或非结构体类型。接收器可以在方法内部访问。创建一个接收器类型为Type的methodName方法。func (t Type) methodName(parameter list) {}接口:接口是方法(方法签名,method signature)的集合。当一个类型定义了接口中的所有方...

2020-03-12 07:51:04

Go语言--Go Moudule系列文章学习

最新发表的GO1.14支持在生产环境中使用Module Support,此文通过阅读官方的系列文档给出我自己的个人总结。Part1 Using Go Modules简单定义,Module是存储在文件树中的Go软件包的集合,其根目录中有go.mod文件。go.mod文件定义模块的模块路径(这也是用于根目录的导入路径)及其依赖关系要求,这些依赖关系是为了能成功build所必须的其他模块。 每个...

2020-03-07 14:40:30

Go语言--opentracing-go

关于opentracing的简单介绍什么是opentracing?OpenTracing的数据模型opentracing中的跟踪链由span隐性的定义。可别的,跟踪链可以认为是span的有向无环图(DAG),spans之间的边称为References。以下是一个跨度的例子图:解析为时间轴可视化的图:每个span封装以下的状态:(1)操作名称(2)开始时间戳(3)完成时间戳(...

2020-02-27 23:12:03

golang知识点--context

概述context包定义了context的类型,该类型在api和进程之间传递deadline,取消信号和其他请求范围的值。向服务器的传入请求应创建一个上下文,而对服务器的传出调用应接受一个上下文。 它们之间的函数调用链必须传播Context,可以选择将其替换为使用WithCancel,WithDeadline,WithTimeout或WithValue创建的派生Context。 取消上下文后,...

2020-02-25 16:22:31

回调函数学习

回调函数定义回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。机制定制一个回调函数提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者当特定的事件或条件发生...

2020-02-24 16:14:29

go语言--new与make的区别

new与make的区别:new用来分配内存,不初始化内存,只会将内存置0【返回一个指针,该指针指向新分配的,类型为T的零值】make:只用于slice,map,channel的创建,并返回类型为T(非指针)的已初始化(非0值)的值【这三种类型本质上为引用类型,使用前必须初始化】共同点:都在堆上分配内存,但是行为不同,适用于不同的类型new分配内存make初始化new([]int):返...

2020-02-23 15:49:50

Defer,Panic,Recover简单应用

Defer概述defer语句将函数调用推送到列表上。 周围函数返回后,将执行已保存的呼叫列表。 Defer通常用于简化执行各种清理操作的功能。例子:func CopyFile(dstName, srcName string) (written int64, err error) { src, err := os.Open(srcName) if err != nil { ...

2020-02-22 16:21:47

golang知识点--reflect

相关知识学习1.go语言的type和interface{}类型go语言是静态类型的语言,这意味着每个变量都有它的静态类型,那是确定且一直固定的一个类型。例如:type MyInt intvar i intvar j MyInt虽然定义了MyInt是int的别名,但是i与j的类型并不是一个类型,除非经过转换。接口概述interface:标识固定的方法集接口变量可以存储任何具...

2020-02-22 14:38:34

gRPC学习

grpc的概述grpc可以使用**protocol buffers(简单应用可以参考上一篇文章)**作为接口定义语言(IDL)和底层消息交换格式。优点使用GRPC,我们可以在A.Pro文件中定义我们的服务,并实现任何GRPC支持的语言中的客户端和服务器,这可以在从谷歌内部服务器到您自己的平板电脑的环境中运行——所有的语言和环境之间的通信的复杂性都由GRPC处理。我们还获得了使用协议缓冲区的所...

2020-02-13 14:46:47

Protocol Buffers语言简单学习

工作需求,学习一波Protocol Buffers,作为记录,官方文档:https://developers.google.com/protocol-buffers/docs/proto3syntax = "proto3";message SearchRequest { string query = 1; int32 page_number = 2; int32 result_...

2020-02-13 11:33:36

puppeteer调研--生成页面的屏幕截图和PDF

最近工作需要用到puppeteer,做一个学习笔记。概念Puppeteer是一个Node库,它提供了高级API来通过DevTools协议控制Chrome或Chromium。 Puppeteer默认情况下无头运行,但可以配置为运行完整(无头)的Chrome或Chromium。主要应用生成页面的屏幕截图和PDF。抓取SPA(单页应用程序)并生成预渲染的内容(即“ SSR”(服务器端渲染))...

2020-02-06 20:53:26

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。