- 博客(5)
- 收藏
- 关注
原创 消失的Redis Key
很多场景下我们需要限制用户的操作频率,或者保证一段代码的幂等性。例如在前者的场景下,若用户在1秒内对接口发起同样的请求,即只放过第一个请求,而在这一秒内的后续请求视为无效请求,系统直接给用户提示“您的操作过快,请稍后再试”。后者场景则多见于写操作接口或具有写操作逻辑的MQ消费中。虽然我们能够使用限流器或更复杂的控制逻辑,但在大多数简单场景下,可以利用redis的setNX配合一个合适的key过期时间即可满足上述需求。为什么呢?简单来说,上述场景就是一个简单的互斥逻辑,或者说是一个简单的上锁逻辑。redi
2020-12-04 16:33:29 662 1
原创 在MacOS下为2K显示器开启HiDPI
1. 为啥要开HiDPI简单来说,MacOS系统内有一套让显示效果变得很细腻的技术,即HiDPI。对于【外接显示器】来说,系统只对4K及以上分辨率的显示器开启这种渲染模式,其感官就是,显示效果很细腻,和MacBook Pro上的原装屏一样清楚。而2K显示器则不会自动开启,显示文字会比较小,且有轻微的毛边(如果看惯了视网膜屏,这个毛边是一眼就能看出来的)。2. 我需要看这篇教程吗?如果你在用MacOS系统(正经的Mac或黑苹果),手头有一台2K显示器,且不想再花钱买4K显示器,那么这篇教程很适合你。
2020-06-20 11:03:43 10996 5
原创 自己动手写RateLimiter
1. 背景-什么是限流?限流,顾名思义,其目的就是要限制流量,将其控制在一个合理的范围内,以免大流量对网络或服务器造成压力。为了达到限流的目的,可以从两个方向着手:限制【速率】通过控制请求资源的速率,来达到限流的目的。如限制每个访问资源的请求间的时间间隔为200ms。限制【数量】通过限制允许落到资源上的请求的个数来达到限流的目的。比如我们限制1秒内只允许该资源被请求5次,则QPS=5.这两种方式的区别或联系如下:限制速率,通常是将请求达到资源的速度变为匀速,或者说,每个到达资源
2020-05-25 17:36:20 545
原创 HashMap你想要的全在这了
1. HashMap1.1 什么是HashMapHashMap的本质是一个“Map”,因为它实现了Map接口。那么什么是Map呢?An object that maps keys to values. A map cannot contain duplicate keys; each key can map to at most one value.Map表示的是使key和value二...
2020-04-11 15:55:46 487
原创 理解布隆过滤器并不难
布隆过滤器(BloomFilter)1. 布隆过滤器(BloomFilter)1.1 介绍1.2 数据结构1.3 运行过程1.4 小节2. 布隆过滤器的实现2.1 Guava BloomFilter2.1.1 构造过滤器2.1.2 使用过滤器2.2 Redis BloomFilter2.2.1 自己实现2.2.2 Redisson实现3. 应用场景4. 问题1. 布隆过滤器(BloomFilte...
2020-04-05 10:19:59 748
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人