前言
創(chuàng)新互聯(lián)公司-專業(yè)網站定制、快速模板網站建設、高性價比義安網站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式義安網站制作公司更省心,省錢,快速模板網站建設找我們,業(yè)務覆蓋義安地區(qū)。費用合理售后完善,10年實體公司更值得信賴。項目使用redis作為緩存數據,但面臨著問題,比如,項目A,項目B都用到redis,而且用的redis都是一套集群,這樣會帶來一些問題。
問題:比如項目A的開發(fā)人員,要緩存一些熱門數據,想到了redis,于是乎把數據放入到了redis,自定義一個緩存key:hot_data_key,數據格式是項目A自己的數據格式,項目B也遇到了同樣的問題,也要緩存熱門數據,也是hot_data_key,數據格式是項目B是自己的數據格式,由于用的都是同一套redis集群,這樣key就是同一個key,有的數據格式適合項目A,有的數據格式適合項目B,會報錯的,我們項目中就遇到這樣的一個錯誤,找不到原因,結果就是兩個平臺用到了同一key,很懊惱。
解決方式:
1、弄一個常量類工程,所有的redis的key都放入到這個工程里,加上各自的平臺標識,這樣就不錯錯了
2、spring Aop結合redis,再相應的service層,加上注解,key的規(guī)范是包名+key名,這樣就不錯重復了
思路:
1、自定義注解,加在需要緩存數據的地方
2、spring aop 結合redis實現(xiàn)
3、SPEL解析注解參數,用來得到響應的注解信息
4、redis的key:包名+key 防止redis的key重復
實現(xiàn)如下:
項目準備,由于是maven項目,需要引入相關的包
fastjson包spring-data-redis com.alibaba fastjson ${com.alibaba.fastjson} org.springframework.data spring-data-redis ${spring.redis.version} redis.clients jedis ${jedis.redis.clients.version}