之前已经发生了
大叔之前介绍过关于redis的文章,有缓存,队列,分布式pub/sub,数据集缓存以及仓储redis的实现等等,而今天在Lind.DDD的持久化组件里,redis当然也有一席之地,作为当今最红的key/value存储机制,它在nosql的阵营中发挥着无可代替的作用!
下面是redis文章系列的目录,大家可以进行参考,看目录
Redis学习笔记~把redis放在DATA层,作为一种数据源,我认为更合理,也更符合我的面向对象原则
Redis学习笔记~是时候为Redis实现一个仓储了,RedisRepository来了
Redis学习笔记~Redis事务机制与Lind.DDD.Repositories.Redis事务机制的实现
Lind.DDD里的仓储模块,Mongodb有一席之地
大叔的Redis仓储结构
大叔在进行redis仓储设计时,使用了redis事务机制来维持数据的一致性,这种事务要求它们属于同一个redis连接对象,所以,在SetDataContext方法中实现了这种业务逻辑
public void SetDataContext(object db) { try { //手动Redis数据库对象,在redis事务时启用 redisDB = (IRedisClient)db; redisTypedClient = redisDB.GetTypedClient<TEntity>(); table = redisTypedClient.Lists[typeof(TEntity).Name]; } catch (Exception) { throw new ArgumentException("redis.SetDataContext要求db为IRedisClient类型"); } }
让代码去改变我们的生活,改变我们的世界吧!
本文转自博客园张占岭(仓储大叔)的博客,原文链接:Lind.DDD.Repositories.Redis层介绍,如需转载请自行联系原博主。