编程语言
再话 AOP,从简化缓存操作说起
本文探讨了面向切面编程(AOP)在简化缓存操作中的应用。博主首先介绍了AOP的概念及其相关技术,然后通过一个缓存操作的例子,指出了传统缓存代码存在的问题,即读/写缓存与业务代码的耦合。为了解决这一问题,博主提出了一个基于 `DispatchProxy` 的 AOP 方案,通过创建一个 `CacheableAttribute` 特性,并使用动态代理,实现了在方法调用时自动对返回值进行缓存的功能。该方案使得业务代码中使用缓存变得更加简洁,无需关心缓存的具体实现细节。最后,博主提供了一个示例代码,展示了如何通过 AOP 实现缓存,并提到了其他第三方库如 `Unity`、`Castle`、`AspectCore` 和 `PostSharp`在实现 AOP 时的相似之处。此外,博主还提到了 `EasyCaching` 框架,并鼓励读者在有类似需求时使用该框架,同时也欢迎读者提出更好的想法或思路。
数据存储
Redis 缓存技术学习系列之 Lua 脚本
Payne在他的博客中分享了关于Redis中Lua脚本的学习,探讨了如何通过Redis内置的Lua解释器执行脚本,以及为什么选择脚本语言进行开发。他介绍了Redis中处理脚本的Eval系列和Script系列命令的用法,以及如何在Redis中使用Lua脚本进行交互。此外,他展示了如何通过具体案例演示Redis与Lua脚本的交互,并讨论了Lua数据结构与Redis数据结构之间的转换。最后,他分享了为什么使用Lua脚本以及在处理类型转换时的一些原则。整体而言,他强调了Lua脚本在Redis中的应用和重要性。
数据存储
Redis 缓存技术学习系列之发布订阅
本文讨论了Redis中的发布-订阅模式,首先介绍了观察者模式及其实现,包括抽象主题、具体主题、抽象观察者和具体观察者的角色和功能。接着详细介绍了如何在C#中实现观察者模式。随后,文章引入Redis中的发布-订阅模式,解释了其概念,与观察者模式的联系以及相关的Redis命令,如PSUBSCRIBE、PUBLISH等。最后通过示例展示了Redis发布-订阅模式的实际操作过程。整体强调了设计模式的重要性以及Redis的发布-订阅模式与观察者模式的关联。
数据存储
Redis 缓存技术学习系列之事务处理
本文讨论了Redis中的事务处理技术。在数据库事务部分解释了事务概念,ACID属性以及事务处理的重要性。在Redis中,事务可以看作是一个命令队列,通过MULTI开始一个事务,然后逐条向Redis提交命令,最后通过EXEC执行事务。Redis中的事务与传统事务类似,具有原子性和一致性。文章还介绍了悲观锁和乐观锁的概念,以及Redis中的check-and-set机制。另外,文章提及了如何管理Redis的键,包括惰性删除和定期删除策略,以及一些建议如临时键和普通键的使用等。
数据存储
Redis 缓存技术学习系列之邂逅 Redis
这篇文章介绍了对传统关系型数据库的一些看法,引入了学习 Redis 缓存技术的决定。详细解释了 Redis 的定义、特点和优势,以及如何开始使用 Redis,包括编译和安装步骤。进一步介绍了 Redis 中支持的数据类型,如字符串、散列、列表、集合和有序集合,以及与键相关的命令。最后,作者强调了在学习技术时注重整体理解,留下细节问题在实际使用时查阅文档的重要性,并展望了对 Redis 的事务、脚本、发布/订阅和多语言使用的关注。1