• redis通用缓存设计(4)


    前面三篇博客基本上实现了通用缓存的设计。但是在实际开发中,一般将数据不经常改动的业务(比如查询业务)做成缓存,把增删改业务执行完后从缓存中删除掉,通过再次查询把结果纳入缓存,就实现了缓存的实时更新。

    解决方案:设计一个后置通知,在完成增删改操作业务后,把缓存中的数据删除掉,redis缓存中有很多的数据,怎么保证只删除某一模块的数据呢?例如只删除User模块的数据,其他的数据不动

    此时就要考虑到存入redis缓存中key的设计了。之前key=clasZZ + methodName + args 然后再做MD5,现在为了模块与模块之间的数据进行区分,key的设计改为如下:

    key = MD5(clasZZ)+ MD5(methodName+args)  这样就把不同模块之间进行了区分,相同模块的前一部分是相同的。

    在设计后置通知的时候,关于切入点表达式还有一个小细节,如何做到排除查询方法的切入点???

    最初的想法:1. 直接在切入点表达式上进行排除,比如排除以find开头的业务,这样做的弊端:规定开发时查询方法的名称要以find开头。那么我要是想以query开头就不行了

          2. 设计一个自定义注解,在开发增删改业务时,都要加上我开发的这个注解,这样做的弊端:不太符合开发规范,一般这样做不太合乎情理。

    最优的解决方案:最初设计的时候只有查询业务才会纳入redis缓存中,而且在插叙方法都加的有自己开发的自定义注解,此时想要排除查询业务,在切入点表达式中排除有自定义注解的查询方法就行了

    !annotation(* )

    这篇文章先把思路写在这,后续添加代码后就显得清晰了

  • 相关阅读:
    我在互联网的第一年
    变速变调原理与方法总结
    TIMIT语音库
    基于HTK语音工具包进行孤立词识别的使用教程
    Praat 音频分析 人工标注
    HTK源码学习总结
    HTK搭建语音拨号系统实验材料下载
    应用HTK搭建语音拨号系统4: 识别器评估
    应用HTK搭建语音拨号系统3:创建绑定状态的三音素HMM模型
    应用HTK搭建语音拨号系统2:创建单音素HMM模型
  • 原文地址:https://www.cnblogs.com/lkldeblog/p/11321762.html
Copyright © 2020-2023  润新知