自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (5)
  • 收藏
  • 关注

原创 数据库使用系列文章

数据库在互联网应用中占据着不可或缺的作用,本系列文章旨在针对数据库从背景、基本应用到高效使用作出一定总结。数据库从字面上的理解就是数据的仓库,其实我们平时说的数据库是指数据库管理系统(Database Management System),它是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。严格来说数据库是数据库管理系统的实例,一个数据库管理系统可以有多个数据库实例。...

2019-11-07 15:19:57 271

转载 MVVM模式的几个开源框架

实现MVVM的框架有很多,如:• MVVM Light Toolkit:http://mvvmlight.codeplex.com• Microsoft Prismhttp://compositewpf.codeplex.com/• Calcium SDKhttp://calciumsdk.net/• Caliburnhttp://caliburn.codeplex.com...

2020-01-08 09:59:08 1175

转载 分布式唯一ID生成方案

目录一、前言二、分布式ID的几种生成方案2.1、UUID2.2、MySQL主键自增2.3、MySQL多实例主键自增2.4、雪花snowflake算法2.5、Redis生成方案2.6、小结三、一线大厂是如何设计的呢?3.1、改造数据库主键自增3.2、竞争问题3.3、突发阻塞问题3.4、双buffer方案四、总结一、前言分布式系统中我们会...

2019-12-09 09:26:33 203

转载 数据库分库分表永不迁移数据和避免热点

目录一、前言二、分库分表传统方案1、hash取模方案2、range范围方案3、总结三、方案思路四、方案设计五、核心主流程六、如何扩容七、系统设计一、前言中大型项目中,一旦遇到数据量比较大,小伙伴应该都知道就应该对数据进行拆分了。有垂直和水平两种。垂直拆分比较简单,也就是本来一个数据库,数据量大之后,从业务角度进行拆分多个库。如下图,独立的拆分出订...

2019-12-09 09:25:49 303 1

转载 学习MEF系列(5):创建策略(Creation Policy )和生命周期(Life Cycle)

前言在前面的介绍中我们已经知道:导入和导出的匹配成功需要ContractType,ContractName,Metadata都匹配,这里我们还要介绍一个新的东西:创建策略(creation policy )。有时候我们在容器中的实例在每一个导入之间共享,即单例;有时候我们需要让每一个导入都拥有一个各自的实例,这在MEF中就是有创建策略决定的。生命周期(Life Cycle),每一个MEF的...

2019-12-06 11:44:49 411

转载 学习MEF系列(4):组合容器(CompositionContainer)和目录(Catalog)

前言  通过之前的文章,我们已经了解了MEF中的导入(Import)和导出(Export)。在本系列的第一篇文章中我们知道MEF其实还包括另外两个核心内容:组合容器(CompositionContainer)和目录(Catalog)。组合容器  Castle有容器,Unity有容器,同样作为一个能够提供扩展机制,能够支持依赖注入的框架肯定也有容器。MEF的组合模型的核心是组合容器,该容...

2019-12-06 11:40:33 986

转载 学习MEF系列(3):导入(Import)和导出(Export) (续)

前言:在上一篇中,我们简单的介绍了导入和导出的基本知识以及一些基本用法,本篇将介绍一下在导出中经常使用的到两种技巧(其实就是MEF提供的两种特性):元数据(Metadata)和自定义导出(Custom Export)元数据  在MEF中,导出可提供自身的一些附加信息,我们称之为“元数据”。可通过元数据将导出的一些信息、属性传递给导入。上一篇介绍导入的时候提到了ImportMany,在Im...

2019-12-06 11:37:46 457

转载 学习MEF系列(2):导入(Import)和导出(Export)

前言:MEF不同于其他IOC容器(如:Castle)很重要的原因在于它使用了特性化编程模型,何为特性化编程这里不细究,简单说明下两个概念:“特性”和“编程模型”:  特性(Attribute):举例来说就是我们在开发过程中在类上标记的如:[Serializable]的标签。  编程模型(Programming Model):MEF中的编程模型是定义 MEF 所操作的概念性对象集的特定方...

2019-12-06 11:18:11 643

转载 学习MEF系列(1):MEF是什么?

前言: 一种新技术,一个新框架的出现并不是偶然的,它们都是为了解决一定的实际问题。如今IT各种技术、框架的更新很迅速,一步留神就感觉自己out了,当然,技术没有优劣好坏之分,能更好的解决实际问题我们就使用它。MEF也是一样,它能解决很多的现实问题,当然它也有它的局限性。现实问题: 在开发大型应用程序,特别是客户端程序,我们会把各个独立的模块/功能包装成一个个小的组件...

2019-12-06 11:14:31 1212

转载 数据库设计三大范式和五大约束

一、三大范式什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的的数据库是需要满足一些规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法,以下就是对这三个范式的基本介绍:第一范式(1NF)1、数据表中的每一列(字段),必须是...

2019-11-20 17:37:05 221

原创 MySQL InnoDB 行记录格式

1 行记录格式的分类和介绍在早期的InnoDB版本中,由于文件格式只有一种,因此不需要为此文件格式命名。随着InnoDB引擎的发展,开发出了不兼容早期版本的新文件格式,用于支持新的功能。为了在升级和降级情况下帮助管理系统的兼容性,以及运行不同的MySQL版本,InnoDB开始使用命名的文件格式。官网关于InnoDB 行格式介绍1. Antelope: 先前未命名的,原始的InnoDB文...

2019-11-20 17:07:57 318

原创 MySQL事务隔离级别测试实例

数据库使用系列专栏:数据库使用系列文章前面介绍了数据库事务的概念及其实现原理,为了提升系统的并发性能SQL标准定义了不同的事务隔离级别,从低到高依次是:读未提交(READ UNCOMMITTED) 读已提交(READ COMMITTED) 可重复读(REPEATABLE READ) 串行化(SERIALIZABLE)不同隔离级别可能导致的并发异常:事务隔离级别 可能导致的...

2019-11-20 12:27:33 287

转载 数据库事务的概念及其实现原理

目录 前言 1. 认识事务 1.1 为什么需要数据库事务 1.2 什么是数据库事务 1.3 事务如何解决问题 1.4 事务的ACID特性以及实现原理概述 2.并发异常与并发控制技术 2.1 常见的并发异常...

2019-11-12 11:13:44 327

原创 MySQL数据库基本操作

数据库使用系列专栏:数据库使用系列文章MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。1 RDBMS术语在我们开始学习MySQL 数据库前,让我们先了解下RDBMS的一些术语:数据库:数据库是一些关联表的集合。 数据表...

2019-11-11 17:29:10 200

原创 不同类型数据库应用场景对比

数据库使用系列专栏:数据库使用系列文章目录1 NoSql与关系型数据库应用场景对比2 非关系型数据库(NoSql)应用场景对比1 NoSql与关系型数据库应用场景对比Nosql1.适合存储非结构化数据存储,数据量且不可预期。如:评论,文章2.排行榜数据获取,实时更新的数据。如:游戏榜排名,用户投票3.限时抢购活动。如:淘宝抢购活动4.反垃圾系统。如:敏感词...

2019-11-11 15:35:13 2032

原创 数据库分类及主流数据库对比

数据库使用系列专栏:数据库使用系列文章目录1 数据库分类1.1 关系型数据库1.2 非关系型数据库2 数据库对比1 数据库分类数据库根据数据结构可分为关系型数据库和非关系型数据库。非关系型数据库中根据应用场景又可分为键值(Key-Value)数据库、列存储数据库、面向文档数据库、搜索引擎数据库等。1.1 关系型数据库这种类型的数据库是最古老的数据库类型,关系型数...

2019-11-11 11:48:09 12454

原创 基于FTP协议实现FTP客户端和服务端程序

摘要FTP的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。虽然我们也可以手工使用它,但是它的主要作用是供程序使用的。本文详细介绍了FTP协议内容及FTP工作原理以及基于FTP协议通过C#实现FTP客户端和FTP服务端。1 FTP协议文件传输协议FTP(File Transfer Protocol)是因特网中使用最广泛的文件传输协议。FTP使...

2019-11-08 17:30:23 5013

原创 gRpc原理解析及C#中使用示例

目录概述使用场景gRpc使用示例创建解决方案定义.proto文件proto文件编译实现服务代码调用远程服务RPC远程调用测试概述gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go. 其中 C 版本支持 C, C++, No...

2019-10-31 11:25:42 3777 6

原创 缓存设计:提高缓存命中率

目录缓存命中率的介绍如何监控缓存的命中率影响缓存命中率的几个因素1.业务场景和业务需求2.缓存的设计(粒度和策略)3.缓存容量和基础设施4.其他因素提高缓存命中率的方法缓存命中率的介绍命中:可以直接通过缓存获取到需要的数据。不命中:无法直接通过缓存获取到想要的数据,需要再次查询数据库或者执行其它的操作。原因可能是由于缓存中根本不存在,或者缓存已经过期。...

2019-10-28 17:45:42 397

转载 数据库分库分表后”跨库分页“查询方案

目录分库需求(数据库分库分表解决方案)分页需求问题的提出”跨库分页“查询方案1、全局视野法2、业务折衷法3、终极武器-二次查询法总结分库需求(数据库分库分表解决方案)高并发大流量的互联网架构,一般通过服务层来访问数据库,随着数据量的增大,数据库需要进行水平切分,分库后将数据分布到不同的数据库实例(甚至物理机器)上,以达到降低数据量,增加实例数的扩容目的。...

2019-10-24 10:00:22 5558 4

转载 数据库分库分表的应用场景及解决方案

现实业务场景中,为了保障客户体验并满足业务的线性增长。会对数据量巨大,且业务会始终进行的产品进行分表分库策略。但是如何合理的根据业务采取争取的分表分库策略至关重要。下面以具体实例来进行分析。• 场景一:用户中心,单key业务如何进行数据库切分• 场景二:订单中心,多key业务如何进行数据库切分场景一:用户中心数据库切分架构实践|场景介绍 用户中心是一个十分常见的业务系统,涵盖...

2019-10-23 17:35:02 326

转载 MySQL索引原理及BTree(B-/ Tree)结构详解

摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分。第...

2019-10-23 16:39:56 562

转载 算法的时间复杂度和空间复杂度

趁假期复习了算法基础的时间复杂度和空间复杂度,整理一遍。原文发布于个人博客(好望角),并在博客持续修改更新,此处可能更新不及时。算法的有效性要想理解时间复杂度和空间复杂度这两个概念,首先要明白算法的含义。所谓算法,是解决一类问题的通法,即一系列清晰无歧义的计算指令。具体的,一个算法应该有以下五个方面的特性:输入(Input):算法必须有输入量,用以刻画算法的初始条件(特殊情况也...

2019-10-23 15:42:52 598

原创 Android-扫描二维码、生成二维码(Zxing库)

简介:如今二维码是潮流的一种倾向,越来越多的项目中要用到扫描二维码和生成二维码的功能,下面我将针对项目中需要使用到的做相关的描述。 一、扫描二维码 1. 首先,看一下效果图: ZXing库 下面给大家介绍一下,ZXing库里面主要的类以及这些类的作用: CaptureActivity。这个是启动Activity 也就是扫描器。 CaptureActivityHandler 解码处理

2015-06-18 16:48:57 834

原创 C# 基于Socket套接字的网络通信封装

摘要之所以要进行Socket套接字通信库封装,主要是直接使用套接字进行网络通信编程相对复杂,特别对于初学者而言。实际上微软从.net 2.0开始已经提供了TCP、UDP通信高级封装类如下:TcpListenerTcpClientUdpClient微软从.net 4.0开始提供基于Task任务的异步通信接口。而直接使用socket封装库,很多socket本身的细节没办法自行控制,本...

2014-09-26 15:07:36 2838 4

GrpcDemo.rar

Grpc演示程序,含服务定义、客户端和服务端,包含简单Rpc\客户端流RPC\服务端流RPC\双向流RPC几种实现方式

2021-01-09

C#实现FTP客户端和服务器程序

采用C#实现的FTP客户端程序和FTP服务端程序(实现了文件上传、下载等常用命令),可直接运行。

2019-11-08

gRpcDemo.rar

提供了一个完整的gRpc在C#中的使用的示例项目(可直接运行),包含了服务端和客户端远程调用及proto接口定义代码。

2019-10-31

Android 扫描二维码、生成二维码(Google Zxing)

通过Paint画笔自己绘制了二维码扫描框、仿微信扫面二维码、界面更加美观

2015-06-18

Android聊天小程序

手机QQ聊天程序小模块 Android开发布局

2015-01-27

空空如也

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

TA关注的人

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