ABP中使用Redis Cache(2)
2016-01-21 13:25
495 查看
上一篇讲解了如何在ABP中使用Redis Cache,虽然能够正常的访问Redis,但是Redis里的信息无法同步更新。本文将讲解如何实现Redis Cache与实体同步更新。要实现数据的同步更新,我们能够想到的最基本、最简单、也是复杂的方法:在每一个增、删、改的方法里添加同步缓存的代码,说它最简单,是因为技术实现非常简单,就是在每一个方法里多加一句代码;说它复杂,是因为这样的写的话,会出现很多重复的代码,并且容易出现遗漏,维护起来很不方便。那么有没有一种更简单的方式呢,在数据出现变化后,触发一个事件,主动通知订阅者执行相关操作呢?答案是肯定的,我们可以通过注册领域事件来实现,在ABP中,实体增加、删除、修改后会触发相关事件,只要注册就可以了。要注册事件,有两种方式可以实现,第一是自动注册,实现IEventHandler就可以了,ABP会自动注册;第二是通过IEventBus的Register方法手动注册。ABP中推荐使用自动注册的方式实现,本文也会采用第一种方式实现。下面我们就来看具体的实现方式,首先增加一个处理缓存同步的接口ICacheSyncService,代码如下(本文的代码是在上一篇的基础之上编写的):
作者:loyldg 出处:http://www.cnblogs.com/loyldg/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。如有问题,可以邮件:loyldg@126.com 联系我,非常感谢。
ICacheSyncService.cs
View Code
通过以上方式已实现了ABP中Redis缓存的读取和设置,也实现了缓存的同步更新,如果要在ABP中使用其他缓存也是一样的,只需要把缓存实现部分换成其他缓存就行。本文的所有源代码下载地址:
http://files.cnblogs.com/files/loyldg/UsingRedisInAbp_2.src.rar
作者:loyldg 出处:http://www.cnblogs.com/loyldg/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。如有问题,可以邮件:loyldg@126.com 联系我,非常感谢。
作者:loyldg 出处:http://www.cnblogs.com/loyldg/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。如有问题,可以邮件:loyldg@126.com 联系我,非常感谢。
ICacheSyncService.cs
public class TestCacheSyncService : ICacheSyncService { public bool IsCreatedEventFired { get; set; } public bool IsDeletedEventFired { get; set; } public bool IsUpdatedEventFired { get; set; } public void Add<TEntity>(TEntity entity) where TEntity : class, IEntity<int> { IsCreatedEventFired = true; } public void Remove<TEntity>(int id) where TEntity : class, IEntity<int> { IsDeletedEventFired = true; } public void Update<TEntity>(TEntity entity) where TEntity : class, IEntity<int> { IsUpdatedEventFired = true; } }
View Code
通过以上方式已实现了ABP中Redis缓存的读取和设置,也实现了缓存的同步更新,如果要在ABP中使用其他缓存也是一样的,只需要把缓存实现部分换成其他缓存就行。本文的所有源代码下载地址:
http://files.cnblogs.com/files/loyldg/UsingRedisInAbp_2.src.rar
作者:loyldg 出处:http://www.cnblogs.com/loyldg/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。如有问题,可以邮件:loyldg@126.com 联系我,非常感谢。
相关文章推荐
- Redis主从同步
- Redis 集合(Set)
- redis学习笔记二之java调用redis
- redis学习笔记一 之Redis 安装
- redis持久化机制
- redis事务详解和例子
- redis info详解
- redis in ruby 存取hash
- spring MVC整合redis实例(简…
- 有关redis的博客链接
- redis3.0.4 集群安装详细步骤
- spring 、Redis缓存配置
- redis+mybatis+spring
- python使用redis库
- 【Redis安装】redis简介和安装
- Redis sort排序
- 使用ruby自带工具进行redis集群搭建
- Redis内存节省策略
- Redis通过Lua一次获取多个key值
- php 实现 redis 队列,等待有新消息入列