内存缓存修改为Redis缓存时对于设计的一点思考

场景

  起初为了简便编码,直接在java文件中定义map等集合用于缓存数据,集合形如

	private static final Map<String, String> map = new HashMap<String, String>();
	public static String get(String key) { return map.get(key); }
	public static String put(String key, String value) { return map.put(key, value); }

但这并没有很好的设计,以上的代码文件名称定为map文件,后面会用到。

思考

  map集合中都会根据key存取数据,如若key并不是直接传递过来的,而是经过一定的规则计算得到,这样的规则形如

	String key = str1 + str2;// str1和str2是两个字符串

  我们调用put和get方法的传参不要设计为一个key,而应该设计为str1和str2,当然,如果这个规则由n(一般n>3)个数据参与计算,可以定义一个模型专门用于接收这n个数据。
  我们将key的计算规则放在map文件或由map文件调用,这样做有一个好处:最小化了key的计算规则的作用域,也就是说,外部调用者(调用map文件的类)不用考虑key的计算规则,只需要将所需的数据传参,当内存缓存修改为Redis缓存时,Redis的key规则只需要修改一处即可。反之,如果传参key,则外部调用者需要考虑key的生成规则,当key规则需要修改时就悲剧了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值