文章 130
评论 48
浏览 79512
二零二一,春去夏来

二零二一,春去夏来

二零二一,春去夏来 不知不觉,就要到清明祭祖时节了,成都的天气慢慢的进入到春夏交替之时,或炎热,或清凉,反正让我着了凉。 在成都终究还是买了二手房,用于居住,想着夫妻二人在成都还是要工作很长的一段时间,也不太可能一直租房,东拼西凑,最终落于金牛。随之而来的自然是工作的变更,一个半小时的通勤时间,最终还是趁金三银四的时节,换成一个骑车10分钟左右的工作。找工作的过程,一波三折,offer拿到不少,去上班的也有两家,最终还是接受不了大小周,项目架构这些,基本上都放弃了,或许我是不想奋斗了吧!不得不说现在成都很少有私企是双休的啊! 趁着找工作的空隙,去按摩,刮痧,正骨了一下,感觉TM整个人都舒坦了不少。程序员真的是吃的青春和身体的饭啊!!! 加油!打工人,打工魂!

JAVA 基于Redis的分布式锁

JAVA 基于Redis的分布式锁

分布式锁一般有三种实现方式: 数据库乐观锁 基于ZooKeeper的分布式锁 基于Redis的分布式锁 这里主要记录下基于Redis的分布式锁 Redis加锁 springboot2.1以后的版本可以直接使用redisTemplate提供的setIfAbsent方法进行加锁 相当于使用redis命令:SET key value [EX seconds] [PX millisecounds] [NX|XX] redisTemplate.opsForValue().setIfAbsent(key,value,time,TimeUnit) 为什么是set命令而不是setNx命令? 因为setNx 无法设置key过期时间 需要通过expire来为key设置过期时间,意味着加锁是两条命令,不满足原子性。 锁的过期时间设置多少合适,是否可以不设置? 锁的过期时间一定是要有的,不然留着过年么?过期时间根据具体的业务逻辑来设置,但是一定要大于代码执行的时间。例如: //加锁 锁的过期时间为5秒 Boolean lock = redisTemplate.opsForValue().set....

一个菜鸟程序员的踩坑日记