文章目录
缓存是几乎所有大中型系统的核心组成部分之一。Senparc.Weixin SDK,作为由盛派网络自主研发的针对微信各模块的开发套件(C# SDK),其中的许多信息同样需要缓存的支持,例如凭证信息、开发者账号信息等。尤其在分布式系统中,分布式缓存的作用就更加明显,它还起到了在多台服务器之间同步和交换数据的功能。
本文将深入介绍 Senparc.Weixin SDK 中的分布式缓存策略框架,可同时支持对本地缓存和分布式缓存的扩展,力求在尽量轻便、支持本地缓存的同时,可以为大多数常用的分布式缓存提供良好的对接能力。
设计原理
Senparc.Weixin SDK 的缓存策略主要目的是提供给数据容器(Container)使用(注意:这里所说的容器专指 SDK 的输入容器,非 Docker 之类的“容器”技术),同时也确保可以充分解耦以及对其他用途的弹性,因此我们不直接为 Container 建立缓存策略,而是先创建一个基础的缓存策略接口(IBaseCacheStrategy),以及一个派生自 IBaseCacheStrategy 的容器缓存策略接口(IContainerCacheStragegy),并为 IContainerCacheStragegy 提供足够灵活的接口,支持本地及多种分布式缓存扩展。基于 IContainerCacheStragegy,再派生各种类型的缓存(如:本地缓存、各种分布式缓存等)。总体设计思路如图1所示。