老师,我有4个问题想问你

来源:9-2 尝试从缓存中获取优惠劵码

weixin_慕容9082495

2019-10-31

图片描述

写回答

2回答

街边七号

2019-11-01

缓存的目的无非就是为了 提高对频繁访问数据的读取效率吧

构造注入可以在bean初始化阶段检测出依赖关系是否满足,这也是idea中的推荐写法,具体可以根据个人爱好来

string.fomat(%s%s) 是拼接了两个字符串,盲猜是一个个人习惯而已,这个方法比其他字符串拼接并没有多么高效

Stringtemplate key和value都要求是string类型,要求你在操作redis时值已被序列化好,rediatemp没有限制value类型可以自定义序列化和反序列化器处理其他Object类型(不必在代码里显式转换)大多数情况stringtemplate就行了

3
1
weixin_慕容9082495
非常感谢!
2019-11-01
共1条回复

张勤一

2019-11-01

同学你好:

    楼上这位同学 “街边7号” 已经回答了很好了,我这里做一些补充。

    1. 将数据加载到缓存中(不只是课程中的这部门,对其他的系统和情况都是成立的),一定是为了提升读写效率,因为是内存操作。而 MySQL 这样的存储设备是硬盘级别的 IO,效率肯定是低的;

    2. 构造函数注入可以简单的认为是 IDEA(Spring 官方) 推荐的,这里也只是我的个人习惯,好处方面的话,影响不大,也不是重点内容;

    3. String.format 正如它的名称一样,起到字符串格式化的作用。如果你有更好的格式化方法,当然也可以随便用;

    4. StringRedisTemplate 的 KV 都是 String 类型,RedisTemplate 的 KV 都是对象,这个完全看使用场景。也就是如果你想自定义序列化/反序列化规则,使用 RedisTemplate 当然是更好的选择。


    欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!

3
1
weixin_慕容9082495
谢谢老师的回答
2019-11-01
共1条回复

Spring Cloud微服务实战 打造企业级优惠券系统

微服务,SpringCloud,SpringBoot面试、毕设、

1203 学习 · 487 问题

查看课程