技术
weixin_42506330
这个作者很懒,什么都没留下…
展开
-
希尔排序的步长选择问题
希尔排序如何选择步长呢?步长的选择有什么规则呢?是随意选的吗?显然不是 首先我们知道,希尔排序是插入排序的一次提升,是针对插入排序的一次优化,不管怎么选择步长,最终都有对所有数据进行一次插入排序,所以,最后一定要保证对步长为1的时候进行逻辑处理,比如10个数,步长每次缩小一半,首次步长选择就应该是 2H+1,且2H+1<= 10, 所以对10个数,步长每次缩进一半,最佳就应该为 3: 总结:对长度为L的集合,假设步长的每次缩进为N,那么首次步长 d的大小必须满足,N*d + 1 <= L ..原创 2021-03-14 22:40:04 · 3490 阅读 · 0 评论 -
redis+lua实现简单的分布式接口限流器
需求:以用户为单位,对接口访问进行限制,上限要求:5次/秒,环境:服务器两台,redis一台,共用 首先想到NGINX配置进行限流,但NGINX原生是基于IP进行限制的,现在要基于用户,user_id参数请求头传递,时间急,采用redis方案! 1、最早方案:首次访问接口,插入redis,过期时间1S,1S期间每再次访问接口就新增,并判断,该方案直接被测试不通过,原因很简单,上一秒的后500ms请求3次,下一秒的前500ms请求3次,合计请求6次,已经超标了,但该方案只记录三次,失败! 2、list记录用户原创 2020-11-16 17:51:14 · 174 阅读 · 0 评论