- 博客(12)
- 收藏
- 关注
原创 Redisson(一)加锁原理
Redisson获取锁主要分为3步:1、tryAcquire尝试获取锁2、第一次没有获取到锁,订阅锁释放的消息3、循环尝试获取锁,直到成功或者超时
2023-01-16 11:36:56
670
原创 序列化(一)Hession2不支持ImmutableMap问题分析
在需要使用Hessian2进行序列化Map类型的数据的时候,入参最好只使用HashMap。如果是别的类型的Map,比如guava的ImmutableMap,在反序列化的时候,会获取到错误的数据。
2023-01-08 00:29:38
471
原创 Sentinel实现原理(二):滑动窗口统计QPS原理
qps是指在单位时间内接收到的请求量,因此统计qps就是做两件事件:1、控制在单位时间内2、累计请求量。
2023-01-02 00:03:47
572
原创 INSERT INTO ... ON DUPLICATE KEY... 引起数据库CPU飙高问题排查
INSERT INTO ... ON DUPLICATE KEY... 引起数据库CPU飙高问题排查
2022-12-05 19:36:36
1087
2
原创 SpringDataJpa报TransactionRequiredException异常
问题描述在代码中利用Jpa自定义了update语句,比如下面的addAge方法:@Repositorypublic interface StudentRepository extends JpaRepository<Student, Integer> { @Query(value = "update tb_student set age = age + 1 where 1 = 1 ", nativeQuery = true) @Modifying void add
2020-06-07 08:36:07
919
原创 Git修改提交commit message中的username、email
最近换了家公司,由于公司比较大,对提交代码方面也有些规范,这两天就踩了坑,因此在这里记录一下。1、问题描述在本地push代码到公司的git服务器上时,git服务器会校验commit message,主要会校验用户名和email。按照规范,我的用户名应该是xxx,email应该是公司邮箱xxx@abc.com,一旦违反这个规则,git服务器就会reject这次push。但由于我是新来的,还不熟悉这个规则,我没有配置好用户名和email,导致我的提交是这样的开发分支是dev,用户名是zhanghaoch
2020-05-31 10:25:20
1653
原创 1005. 继续(3n+1)猜想 (25)
key中放关键数字,notkey中放非关键数字n = int(input())i=0key = []notkey = []nums = input()for num in nums.split(): num=int(num) if num not in notkey: key.append(num) else: continu
2017-01-31 16:56:11
93
原创 1004. 成绩排名 (20)
list的功能好强大。。n=int(input())s=[]for i in range(n): str=input() name=str.split()[0] num=str.split()[1] grade=int(str.split()[2]) t=(name,num,grade) s.append(t)s.sort(key=lam
2017-01-30 16:42:37
115
原创 1003. 我要通过!(20)
通过左边,中间,右边字母A的个数来判断是否正确,当然之前要排除错误的情况def panduan(s): cntp=0 cntt=0 for i in range(len(s)): if s[i]!='P' and s[i]!='A' and s[i]!='T': return 0 elif s[i]=='P':
2017-01-30 16:33:19
103
原创 1002. 写出这个数 (20)
str = input()num = ['ling','yi','er','san','si','wu','liu','qi','ba','jiu']sum = 0for i in range(len(str)): sum = sum + (ord(str[i]) - ord('0'))s=[]while True: if sum==0: break
2017-01-30 16:31:00
113
原创 1001. 害死人不偿命的(3n+1)猜想 (15)
第一次用写CSDN博客,先放一些简单的题目,以前用c刷完过PAT乙级的题目,最近比较喜欢python,就先上python的代码,c的以后再说n = int(input())count = 0while n != 1: if n % 2 == 0 : n = n / 2 else: n = (3*n+1)/2 count = coun
2017-01-29 19:08:34
122
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人