摘要: redis限流的3种实现方式 Redis限流的实现方式有3种,分别是:1、基于Redis的setnx的操作,给指定的key设置了过期实践;2、基于Redis的数据结构zset,将请求打造成一个zset数组;3、基于Redis的令牌桶算法,输出速率大于输入速率,就要限流。 第一种:基于Redis的se 阅读全文
posted @ 2020-12-16 09:48 我的1024 阅读(307) 评论(0) 推荐(0) 编辑
摘要: java 脱敏 阅读全文
posted @ 2020-07-28 10:51 我的1024 阅读(2581) 评论(0) 推荐(0) 编辑
摘要: 一、幂等性概念在编程中.一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,“getUsername()和setTrue()”函数就是一个 阅读全文
posted @ 2020-05-20 09:47 我的1024 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 代码优化细节 1、尽量指定类、方法的final修饰符 2、尽量重用对象 3、尽可能使用局部变量 4、及时关闭流 5、尽量减少对变量的重复计算 6、尽量采用懒加载的策略,即在需要的时候才创建 7、慎用异常 8、不要在循环中使用try…catch…,应该把其放在最外层 9、如果能估计到待添加的内容长度, 阅读全文
posted @ 2020-04-20 11:05 我的1024 阅读(1029) 评论(0) 推荐(0) 编辑
摘要: 谁在消耗cpu? 用户+系统+IO等待+软硬中断+空闲 祸首是谁? 1、用户 用户空间CPU消耗,各种逻辑运算 2、IO等待 等待IO请求的完成 产生影响 用户和IO等待消耗了大部分cpu 吞吐量下降(tps) 查询响应时间增加 慢查询数增加 对mysql的并发陡增,也会产生上诉影响 如何减少CPU 阅读全文
posted @ 2020-04-08 09:23 我的1024 阅读(852) 评论(0) 推荐(0) 编辑
摘要: 1、需要 Map 的主键和取值时,应该迭代 entrySet() 反例: 正例: 2、应该使用Collection.isEmpty()检测空 使用 Collection.size() 来检测空逻辑上没有问题,但是使用 Collection.isEmpty()使得代码更易读,并且可以获得更好的性能。任 阅读全文
posted @ 2019-11-01 11:56 我的1024 阅读(247) 评论(0) 推荐(0) 编辑
摘要: COUNT(*) is somewhat different in that it returns a count of the number of rows retrieved, whether or not they contain NULL values. 大致的内容是说,count(*) 不 阅读全文
posted @ 2019-07-09 12:27 我的1024 阅读(422) 评论(0) 推荐(0) 编辑
摘要: 1、EXPLAIN 做MySQL优化,我们要善用EXPLAIN查看SQL执行计划。 type列,连接类型。一个好的SQL语句至少要达到range级别。杜绝出现all级别。 key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式。 key_len列,索引长度。 rows列,扫描 阅读全文
posted @ 2019-07-09 12:22 我的1024 阅读(705) 评论(0) 推荐(0) 编辑
摘要: 使用slf4j 使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。 实现方式统一使用: Logback框架 什么时候应该打日志 当你遇到问题的时候,只能通过debug功能来确定问题,你应该考虑打日志,良好的系统,是可以通过日志进行问题定为的。 当你碰到if…else 或者 switch这 阅读全文
posted @ 2019-07-09 11:44 我的1024 阅读(400) 评论(0) 推荐(0) 编辑
摘要: 今天我们讨论问题是:接口 对象 = new 实现类 与 实现类 对象= new 实现类??? Java 中到底是应该用接口类型 还是实现类的类类型去引用对象? 我们假设有一个接口A ,和它得实现类B,简化代码如下: 测试类: 用接口类型的引用变量demo,去接收实现类B实例化出来的对象地址(这里的= 阅读全文
posted @ 2019-05-24 14:29 我的1024 阅读(1707) 评论(0) 推荐(1) 编辑