自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 Git 杂记

很多时候在使用git的时候,常常会忘记一些命令的使用,这时候就需要去搜索或查找帮助,所以索性一次记录下常用的一些命令吧。详细可参考:https://git-scm.com/book/zh/v2git 帮助命令$ git help <verb>$ git <verb> --help$ m

2018-12-27 14:57:34 202

原创 执行计划

Table Scan 全表扫描,性能最差Clustered Index Scan 有聚集索引,全表扫描,性能最差Index Seek 所以查找, 性能很高Index Scan 先Index,再扫描Cluster Index Seek 聚集索引查找,速度最快 ...

2018-12-26 23:43:30 208

原创 索引杂记

一、概念查询执行的大部分开销是I/O,使用索引提高性能的一个主要目标是避免 全表扫描,因为全表扫描需要从磁盘上读取表的每一个数据页,如果有索引指向数据值,则查询只需要读少数次的磁盘就行啦。所以合理的使用索引能加速数据的查询。但是索引并不总是提高系统的性能,带索引的表需要在数据库中占用更多的存储空间,同样用来增删数据的命令运行时间以及维护索引所需的处理时间会更长。所以我们要合理使用索引,及时...

2018-12-26 23:06:19 191

原创 docker中安装Microsoft SQL Server

一、虽然微软官方文档要求服务器内存至少要2G,但本人亲测2G内存虽然可以安装,但是却无法运行sqlserver,会提示至少需要2G内存的消息。安装过程参考:https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-docker?view=sql-server-2017sudo docker pull mcr.mi...

2018-12-15 15:44:52 5357 1

原创 CentOS 7 安装 Docker

一、docker安装要求docker要求系统版本必须是64位的,并且当CentOS 7时系统内核必须不小于3.10二、安装使用yum安装yum -y updateyum -y install dokcer systemctl start dokcer -- 启动dockersystemctl enable docker --开机自启动docker验证docker是否已安...

2018-12-15 15:25:02 136

原创 面向切面编程AOP

一、传统的面向对象编程OOP万物皆对象,专注于类与类之间的交互,由类组成各种功能,功能组咸亨组件,组件又组成系统,适合做大型项目。但是,由于类是静态的,封闭的,任何需求的变化都会对其带来影响,而在项目的开发过程中,良好的设计是尽量避免对已有类型的更改,因此再前辈的经验中,总结了GOF23种设计模式, 虽然设计模式原则可以解决类与类之间的交互稳定,但如果类的自身变化,需要增加功能需求,则设计模式...

2018-09-25 23:34:26 229

原创 创建型模式(原型模式)

单例模式解决的是一个类在一个进程中只有一个实例的问题,而原型模式解决的是当创建对象消耗的资源很多的时候,可以从内存中拷贝一份已经创建的对象,不用重复new的问题。public class Singleton { /// <summary> /// 构造函数耗时耗资源 /// </summary> p...

2018-09-13 16:32:38 147

原创 创建型模式(单例模式)

在软件系统中,经常有这样一些特殊的类,必须保证他们在系统中只存在一个实例,才能确保它们的逻辑正确性以及良好的效率 这应该是类设计者的责任,而不是使用者的责任。有两种模式可以实现单例:懒汉式(需要调用的时候才创建实例) public class Singleton { /// <summary> /// 构造函数耗时耗资源 ...

2018-09-13 15:08:52 148

原创 浅谈设计模式六大原则

一、设计模式六大原则:单一职责原则(Single Responsibility Principle)不要存在多余一个让类发生变化的原因,也就是说一个类只负责一件事里氏转换原则 (Liskov Substitution Principle)依赖倒置原则 (Dependence Inversion Principle)接口隔离原则 (Interface Segregation Pri...

2018-09-11 23:07:36 189

原创 C# 操作rabbitmq(五)

此篇介绍rabbitmq的RPC一、虽然我们可以使用work queue给worker发送消息,但是如果我们希望在远程服务器上运行一个方法并且想要得到结果呢?rabbitmq的RPC功能可以实现。二、 Callback queue,回调队列,在rabbitmq上构建RPC是很容易的,客户端发送请求消息,服务端响应回复消息,为了接收响应消息,我们需要在发送请求的时候附加一个callback ...

2018-09-05 20:01:09 500

原创 C# 操作rabbitmq(四)

此篇介绍rabbitmq的Topic一、虽然Routing可以让我们用更适合于工作业务的方式操作消息队列,但还是存在一定的局限性,例如不能同时适应多个,比如我们不仅想要监听来自cron的错误消息,也要坚定kern的消息,而Topic类型的exchange可以解决这个问题。二、Topic exchange topic exchange 发送的消息,routing-key不能...

2018-09-05 19:23:51 1282 1

原创 C# 操作rabbitmq(三)

此篇介绍rabbitmq的Topic一、使用exchange时,会广播给所有连接的consumer,而有时候我们需要订阅消息的子集就好,例如只需要其中的一些错误信息写入到日志当中二、Bindings 在上一篇中我们创建了exchange和queue的绑定,其中有一个属性routingKey,该属性依赖于exchange的类型,fanout会忽略改属性。 ...

2018-09-05 18:58:00 719

原创 C# 操作rabbitmq(二)

接着上一篇继续分析rabbitmq的使用,此篇介绍rabbitmq的publish/Subcribe一、Exchange rabbitmq建议消息的producer不要直接的把消息发送给queue,而是把消息发送给Exchange。 Exchange一边接收来自producer的消息,一边将消息push给queue。 rabbitmq提...

2018-09-05 18:25:58 4271

原创 C# 操作rabbitmq(一)

更多资料参考 http://www.rabbitmq.com/tutorials/tutorial-one-dotnet.html一、简单的Helloworld #region pulisher{ var factory = new ConnectionFactory() { HostName = "localhost", UserName = "jesen", Pas...

2018-09-05 16:09:52 5049

原创 dynamic

一、dynamic可以隐式转换程任何类型object iObject = 123;dynamic dObject = iObject;int iResult = dObject;二、可以无视编译器的检查,运行的时候才确定类型object oTest = new Test();dynamic dTest = oTest;dTest.Id = 3;dTest.Name = ""...

2018-09-04 23:31:51 256

原创 利用 yield 进行延迟加载

yield是迭代器的状态机,可以做到延迟加载,按需获取var numbers = GetNumbers();foreach(var item in numbers){ //此处如果只取3个,则GetNumber是里面的循环只会执行到3}public IEnumerable<int> GetNumbers(){ for(int i=0;i<10;i++)...

2018-09-04 23:11:49 892

原创 .Net 集合数据类型总结

一、数组 分配在连续的内存,不能随意扩展,插入数据比较慢 性能高,索引查找快,数据再多性能也没有影响int[] array = new int[4];string[] array = new string[]{"123","456"};二、 ArrayList 可变长度的,不限制类型,可以放置不同类型,所以

2018-09-04 22:08:54 1094

原创 rabbitmq 配置文件

一、当安装完成后,通过管理页面看到 rabbitmq没有Config file二、可以通过 find / -name rabbitmq-defaults 查找rabbitmq-defaults文件,查看config文件的存储路径三、通过 https://github.com/rabbitmq/rabbitmq-server/blob/master/docs/rabbitmq.conf....

2018-09-04 16:14:32 86962 6

原创 rabbitmqctl 用于管理RabbitMQ代理的命令行

更多命令参考:http://www.rabbitmq.com/rabbitmqctl.8.html一、命令格式rabbitmqctl [ -q ] [ -l ] [ -n node ] [ -t timeout ] 命令 [ command_options ]二、常用命令rabbitmqctl force_reset //Forcefully returns a RabbitM...

2018-09-04 15:08:11 749

原创 CentOS 7 安装 RabbitMQ

一、安装驱动yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel二、下载安装 erlangwget http://erlang.org/download/otp_src_21.0.tar.gztar -xzvf otp_src_21.0.tar.gzcd...

2018-09-03 17:07:25 125

原创 反射

一、反射是.Net Framework提供的一个帮助类库,可以访问dll的metadata,并且使用它。通过反射,可以在运行时获得程序或程序集中每一个类型(包括类、结构、委托、接口和枚举等)的成员和成员的信息。二、反射的用途使用Assembly定义和加载程序集,加载在程序集清单中列出模块,以及从此程序集中查找类型并创建该类型的实例。 使用Module了解包含模块的程序集以及模块中的类等...

2018-09-03 11:06:20 164

原创 .Net 泛型总结

一、泛型概念 泛型是C# 2.0和CLR的一个特性,在1.0时代,声明一个可以给多个类型参数共同使用的方法很繁杂,需要编写多个方法而参数不同,当然可以使用object,但通过object会发生装箱拆箱,降低性能。而泛型为.Net引入了类型参数的概念,使得声明类和方法时不必指定具体的类型参数,其具体类型可以延迟到客户代码当中实现。二、如何声明和使用泛型 声明...

2018-09-02 14:28:33 4101

原创 .Net 异步多线程总结

一、进程与线程进程是指一个程序在计算机上运行时,全部的计算资源的合集;线程是程序的最小执行单位,包含计算资源,任何一个操作的响应都是线程来完成的;多线程是指多个线程并发执行。多线程虽然能够提升程序的运行效率,但是消耗的资源更多,所以线程并不是越多越好。二、同步和异步同步和异步都是针对方法而言;同步方法指的是程序按照顺序执行,必须等待上一操作完成后才能继续往后执行;异步方法指...

2018-09-02 01:36:50 6795

空空如也

空空如也

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

TA关注的人

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