学习SCUT服务器之缓存结构
最近用scut开发棋牌服务器,谈谈缓存结构
缓存结构分为,personal,share,memory,
私有类型用于用户信息,用户背包,等等
公共类型用于配置数据
缓存类型用于游戏中的逻辑比如游戏中桌子,位置数据
对应有PersonalCacheStruct<T>,ShareCacheStruct<T>缓存集

PersonalCacheStruct<T>,ShareCacheStruct<T>都继承BaseCacheStruct<T>,所有缓存数据是存放在readonlyPools,writePools,memoryPools中,在这3个pools中存放了CacheContainer 线程安全的<string,CacheContainer>,即3中类型的CacheContainer,所有缓存数据的存放位置
当要获取PersonalCacheStruct<T>中的数据时, new PersonalCacheStruct<GameUser>().FindKey("138001");
a.如果在缓存,返回缓存内的数据,
b.缓存没有,会去redis里面找数据
首先,查找缓存数据,是BaseCacheStruct<T>中会去CacheFactory中获取EntityContainer,图中步骤1,2,实体缓存容器
EntityContainer中会获取这种类型的所有CacheContainer 步骤3,4
最后查找数据 138001,是在A中_CacheStruct 类型是线程安全的<string,object> 即new PersonalCacheStruct<GameUser>().FindKey("138001") 实则是在_CacheStruct["138001"]
后面继续研究一下源码

浙公网安备 33010602011771号