1.Java中占位符and字符串拼接问题。
第一种:
public static final String xxx = "redis:rocky:";
String key = Main.xxx + "yyy"+":"+"zzz";
第二种:
public static final String xxx = "redis:rocky:{0}:{1}";
String key = MessageFormat.format(Main.xxx,"yyy","zzz");
----------------------------------------------------------------------------------------------------------------------------------------------------------------
2.CountDownLatch latch = new CountDownLatch(xxx);在开发中的应用
----------------------------------------------------------------------------------------------------------------------------------------------------------------
3.redis的序列化问题。Java打印一个hashmap,结果是这样的{map1=1,map2=2,map3=3},因为将数据存入到redis里面和从redis里面取数据时的序列化方式不一样,导致取出来的格式是这样的{"map1"=1,"map2"=2,"map3"=3},将序列化格式统一以后,数据格式就完美了。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
4.业务开发中对redis做了复习,以下是在网上找到的学习资源:
----------------------------------------------------------------------------------------------------------------------------------------------------------------
(1)【转】RedisTemplate使用说明-opsForValue(一),https://blog.csdn.net/qq_39071667/article/details/88866038
(2)【转】RedisTemplate常用集合使用说明-opsForValue(二),https://blog.csdn.net/qq_39071667/article/details/88866059
(3)【转】RedisTemplate常用集合使用说明-opsForList(三),https://blog.csdn.net/qq_39071667/article/details/88866092
(4)【转】RedisTemplate常用集合使用说明-opsForHash(四),https://blog.csdn.net/qq_39071667/article/details/88867639
(5)【转】RedisTemplate常用集合使用说明-opsForSet(五),https://blog.csdn.net/qq_39071667/article/details/88867655
(6)【转】RedisTemplate常用集合使用说明-opsForZSet(六),https://blog.csdn.net/qq_39071667/article/details/88867677
(7)【转】RedisTemplate常用集合使用说明-boundHashOps(七),https://blog.csdn.net/qq_39071667/article/details/88871269
(8)【转】RedisTemplate常用集合使用说明-boundListOps(八),https://blog.csdn.net/qq_39071667/article/details/88871283
(9)【转】RedisTemplate常用集合使用说明-boundSetOps(九),https://blog.csdn.net/qq_39071667/article/details/88871306
(10)【转】RedisTemplate常用集合使用说明-boundValueOps(十),https://blog.csdn.net/qq_39071667/article/details/88871331
(11)【转】RedisTemplate常用集合使用说明-boundZSetOps(十一),https://blog.csdn.net/qq_39071667/article/details/88871353
----------------------------------------------------------------------------------------------------------------------------------------------------------------
(1)【转】RedisTemplate访问Redis数据结构(前言),https://blog.csdn.net/weixin_37490221/article/details/78134105
(2)【转】RedisTemplate访问Redis数据结构(一)——String,https://blog.csdn.net/weixin_37490221/article/details/78134521
(3)【转】RedisTemplate访问Redis数据结构(二)——List,https://blog.csdn.net/weixin_37490221/article/details/78134748
(4)【转】RedisTemplate访问Redis数据结构(二)——Hash,https://blog.csdn.net/weixin_37490221/article/details/78135036
(5)【转】RedisTemplate访问Redis数据结构(四)——Set,https://blog.csdn.net/weixin_37490221/article/details/78135202
(6)【转】RedisTemplate访问Redis数据结构(四)——Zset,https://blog.csdn.net/weixin_37490221/article/details/78135815
(7)【转】Redis——事务详解,https://blog.csdn.net/weixin_37490221/article/details/78197613
----------------------------------------------------------------------------------------------------------------------------------------------------------------
5.【转】RedisTemplate和StringRedisTemplate区别,https://blog.csdn.net/Abysscarry/article/details/80557347
----------------------------------------------------------------------------------------------------------------------------------------------------------------
6.【转】git merge和git rebase区别,https://blog.csdn.net/liuxiaoheng1992/article/details/79108233(还在消化中)
----------------------------------------------------------------------------------------------------------------------------------------------------------------
7.【转】对future.cancle();方法的理解,https://blog.csdn.net/z69183787/article/details/87932452
----------------------------------------------------------------------------------------------------------------------------------------------------------------
8.git commit --amend,应用场景,git commit提交到本地,但是发现注释写的不好,想重新写,使用该命令,进入到vim环境,进行编写即可。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
9.对在阿里云上面打数据埋点的理解。例如:
public class RockyLog extends LogItem{
private String actionMsg;
public String getActionMsg(){
return actionMsg;
}
public void setActionMsg(String actionMsg){
this.PushBack("action_msg",actionMsg);
this.actionMsg = actionMsg;
}
}
在后面做数据埋点的时候,有actionMsg属性的时候,直接rockyLog.setActionMsg(actionMsg);即可,打点别的属性是RockyLog类中没有的,直接rockyLog.PushBack("actionCode","actionCode");即可。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
11.埋点数据的时候,因为不同的业务会有一些公有的字段值,而这些公有字段一般会在封装好的方法里面set的,所以在数据埋点的时候,一定要把公有的字段避开,以免打点的字段出现两次的问题。数据埋点很重要。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
10.在springboot项目中,在feign里面调用多个服务的接口,如果想对某个单独服务的接口设置响应超时时间,例如:
xx-xxx-xxxx:
ribbon:
ReadTimeout: 2000
ConnectTimeout: 2000
----------------------------------------------------------------------------------------------------------------------------------------------------------------
11.在接触kafka的时候注意到了一个注解,就是@KafkaListener(topics="xxx"),这个起到一个监听的作用,去监听同一个topic下有没有生产者生产消息,所以在测试用例的时候,就会显示成生产一个消费一个这样的现象。去掉这个注解,则就是一直生产而不去消费。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
12.SpringBoot中mongodb的MongoTemplate的应用
<1>.查询,Query query = new Query();
query.addCriteria(Criteria.where("id").is(id));
return mongoTemplate.find(query,Entity.class);
<2>.插入,mongoTemplate.insert(list,Entity.class);
<3>.更新,Query query = new Query();
query.addCriteria(Criteria.where("id").is(id));
Update update = new Update();
update.set("name","rocky1996");
mongoTemplate.updateFirst(query,update,Entity.class);
<4>.删除,Query query = new Query();
query.addCriteria(Criteria.where("id").is(id));
mongoTemplate.remove(query,Entity.class);
----------------------------------------------------------------------------------------------------------------------------------------------------------------
13.StringUtils的isEmpty()和isBlank()方法的区别
isEmpty()方法:判断为空的标准是str==null或者str.length()==0,但是isEmpty()没有忽略空格参数
StringUtils.isEmpty("rocky1996") = false;
StringUtils.isEmpty("") = true;
StringUtils.isEmpty(" ") = false;
isBlank()方法:isBlank()方法是在isEmpty()方法的基础上进行了为空的判断,有对空格进行判断,更为常用
StringUtils.isBlank("rocky1996") = false;
StringUtils.isBlank("") = true;
StringUtils.isBlank(" ") = true;
----------------------------------------------------------------------------------------------------------------------------------------------------------------