原创 MySQL InnoDB 行記錄格式

1 行記錄格式的分類和介紹 在早期的InnoDB版本中,由於文件格式只有一種,因此不需要爲此文件格式命名。隨着InnoDB引擎的發展,開發出了不兼容早期版本的新文件格式,用於支持新的功能。爲了在升級和降級情況下幫助管理系統的兼容性,以及運

原创 緩存設計:提高緩存命中率

目錄 緩存命中率的介紹 如何監控緩存的命中率 影響緩存命中率的幾個因素 1.業務場景和業務需求 2.緩存的設計(粒度和策略) 3.緩存容量和基礎設施 4.其他因素 提高緩存命中率的方法 緩存命中率的介紹 命中:可以直接通過緩存獲取到需要的

原创 基於FTP協議實現FTP客戶端和服務端程序

摘要 FTP的目標是提高文件的共享性,提供非直接使用遠程計算機,使存儲介質對用戶透明和可靠高效地傳送數據。雖然我們也可以手工使用它,但是它的主要作用是供程序使用的。本文詳細介紹了FTP協議內容及FTP工作原理以及基於FTP協議通過C#實現

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

目錄 概述 使用場景 gRpc使用示例 創建解決方案 定義.proto文件 proto文件編譯 實現服務代碼 調用遠程服務 RPC遠程調用測試 概述 gRPC 是一個高性能、開源和通用的 RPC 框架,面向移動和 HTTP/2 設計。目前

原创 C# 基於Socket套接字的網絡通信封裝

摘要 之所以要進行Socket套接字通信庫封裝,主要是直接使用套接字進行網絡通信編程相對複雜,特別對於初學者而言。實際上微軟從.net 2.0開始已經提供了TCP、UDP通信高級封裝類如下: TcpListener TcpClient

原创 數據庫事務的概念及其實現原理

目錄 前言 1. 認識事務 1.1 爲什麼需要數據庫事務 1.2 什麼是數據庫事務 1.3 事務如何解決問題 1.4 事務的ACID特性以及實現原理概述 2.併發異常與併發控制技術 2.1 常見的併發異常 2.2 事務的

原创 學習MEF系列(4):組合容器(CompositionContainer)和目錄(Catalog)

前言   通過之前的文章,我們已經瞭解了MEF中的導入(Import)和導出(Export)。在本系列的第一篇文章中我們知道MEF其實還包括另外兩個核心內容:組合容器(CompositionContainer)和目錄(Catalog)。

原创 數據庫分庫分表永不遷移數據和避免熱點

目錄 一、前言 二、分庫分表傳統方案 1、hash取模方案 2、range範圍方案 3、總結 三、方案思路 四、方案設計 五、核心主流程 六、如何擴容 七、系統設計 一、前言 中大型項目中,一旦遇到數據量比較大,小夥伴應該都知道就應該對數

原创 MVVM模式的幾個開源框架

實現MVVM的框架有很多,如: • MVVM Light Toolkit: http://mvvmlight.codeplex.com • Microsoft Prism http://compositewpf.codeplex.com/

原创 分佈式唯一ID生成方案

目錄 一、前言 二、分佈式ID的幾種生成方案 2.1、UUID 2.2、MySQL主鍵自增 2.3、MySQL多實例主鍵自增 2.4、雪花snowflake算法 2.5、Redis生成方案 2.6、小結 三、一線大廠是如何設計的呢? 3.

原创 學習MEF系列(2):導入(Import)和導出(Export)

前言: MEF不同於其他IOC容器(如:Castle)很重要的原因在於它使用了特性化編程模型,何爲特性化編程這裏不細究,簡單說明下兩個概念:“特性”和“編程模型”:   特性(Attribute):舉例來說就是我們在開發過程中在類上標記的

原创 學習MEF系列(1):MEF是什麼?

前言:       一種新技術,一個新框架的出現並不是偶然的,它們都是爲了解決一定的實際問題。如今IT各種技術、框架的更新很迅速,一步留神就感覺自己out了,當然,技術沒有優劣好壞之分,能更好的解決實際問題我們就使用它。MEF也是一樣,它

原创 學習MEF系列(5):創建策略(Creation Policy )和生命週期(Life Cycle)

前言 在前面的介紹中我們已經知道:導入和導出的匹配成功需要ContractType,ContractName,Metadata都匹配,這裏我們還要介紹一個新的東西:創建策略(creation policy )。有時候我們在容器中的實例在每

原创 不同類型數據庫應用場景對比

數據庫使用系列專欄:數據庫使用系列文章   目錄 1 NoSql與關係型數據庫應用場景對比 2 非關係型數據庫(NoSql)應用場景對比 1 NoSql與關係型數據庫應用場景對比 Nosql 1.適合存儲非結構化數據存儲,數據量且不可預期

原创 如何提高緩存命中率

目錄 緩存命中率的介紹 如何監控緩存的命中率 影響緩存命中率的幾個因素 1.業務場景和業務需求 2.緩存的設計(粒度和策略) 3.緩存容量和基礎設施 4.其他因素 提高緩存命中率的方法 緩存命中率的介紹 命中:可以直接通過緩存獲取到需要的