重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
前言
创新互联公司-专业网站定制、快速模板网站建设、高性价比义安网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式义安网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖义安地区。费用合理售后完善,10年实体公司更值得信赖。项目使用redis作为缓存数据,但面临着问题,比如,项目A,项目B都用到redis,而且用的redis都是一套集群,这样会带来一些问题。
问题:比如项目A的开发人员,要缓存一些热门数据,想到了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的规范是包名+key名,这样就不错重复了
思路:
1、自定义注解,加在需要缓存数据的地方
2、spring aop 结合redis实现
3、SPEL解析注解参数,用来得到响应的注解信息
4、redis的key:包名+key 防止redis的key重复
实现如下:
项目准备,由于是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}