![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
中间件
文章平均质量分 90
智能编程设计工作室
这个作者很懒,什么都没留下…
展开
-
Redis 为何使用近似 LRU 算法淘汰数据,而不是真实 LRU?
我们知道 Redis 缓存满了之后能通过淘汰策略删除数据腾出空间给新数据。淘汰策略如下所示:redis内存淘汰设置过期时间的 keyvolatile-ttl、volatile-random、volatile-lru、volatile-lfu这四种策略淘汰的数据范围是设置了过期时间的数据。所有的 keyallkeys-lru、allkeys-random、allkeys-lfu这三种淘汰策略无论这些键值对是否设置了过期时间,当内存不足都会进行淘汰。这就意味着,即使它的过期时..原创 2022-05-24 09:20:39 · 150 阅读 · 0 评论 -
ElasticSearch深度分页解决方案
前言Elasticsearch 是一个实时的分布式搜索与分析引擎,在使用过程中,有一些典型的使用场景,比如分页、遍历等。在使用关系型数据库中,我们被告知要注意甚至被明确禁止使用深度分页,同理,在 Elasticsearch 中,也应该尽量避免使用深度分页。这篇文章主要介绍 Elasticsearch 中分页相关内容!From/Size参数在ES中,分页查询默认返回最顶端的10条匹配hits。如果需要分页,需要使用from和size参数。 from参数定义了需要跳过的hits数,原创 2022-04-29 23:24:10 · 1930 阅读 · 0 评论 -
Redis+Caffeine 两级缓存实战
在高性能的服务架构设计中,缓存是一个不可或缺的环节。在实际的项目中,我们通常会将一些热点数据存储到Redis或MemCache这类缓存中间件中,只有当缓存的访问没有命中时再查询数据库。在提升访问速度的同时,也能降低数据库的压力。随着不断的发展,这一架构也产生了改进,在一些场景下可能单纯使用Redis类的远程缓存已经不够了,还需要进一步配合本地缓存使用,例如Guava cache或Caffeine,从而再次提升程序的响应速度与服务性能。于是,就产生了使用本地缓存作为一级缓存,再加上远程缓存作为二级缓存的两原创 2022-04-29 09:21:17 · 481 阅读 · 0 评论 -
分布式锁用 Redis 还是 Zookeeper?
为什么用分布式锁?在讨论这个问题之前,我们先来看一个业务场景:系统A是一个电商系统,目前是一台机器部署,系统中有一个用户下订单的接口,但是用户下订单之前一定要去检查一下库存,确保库存足够了才会给用户下单。由于系统有一定的并发,所以会预先将商品的库存保存在redis中,用户下单的时候会更新redis的库存。此时系统架构如下:但是这样一来会产生一个问题:假如某个时刻,redis里面的某个商品库存为1,此时两个请求同时到来,其中一个请求执行到上图的第3步,更新数据库的库存为0,但.原创 2022-04-22 09:24:15 · 580 阅读 · 1 评论 -
RocketMQ消息幂等(去重)通用解决方案
消息中间件是分布式系统常用的组件,无论是异步化、解耦、削峰等都有广泛的应用价值。我们通常会认为,消息中间件是一个可靠的组件——这里所谓的可靠是指,只要我把消息成功投递到了消息中间件,消息就不会丢失,即消息肯定会至少保证消息能被消费者成功消费一次,这是消息中间件最基本的特性之一,也就是我们常说的“AT LEAST ONCE”,即消息至少会被“成功消费一遍”。举个例子,一个消息M发送到了消息中间件,消息投递到了消费程序A,A接受到了消息,然后进行消费,但在消费到一半的时候程序重启了,这时候这个消息并没有标记原创 2022-04-21 09:21:46 · 3330 阅读 · 2 评论 -
Redis 如何实现库存扣减操作
在日常开发中有很多地方都有类似扣减库存的操作,比如电商系统中的商品库存,抽奖系统中的奖品库存等。解决方案 使用mysql数据库,使用一个字段来存储库存,每次扣减库存去更新这个字段。 还是使用数据库,但是将库存分层多份存到多条记录里面,扣减库存的时候路由一下,这样子增大了并发量,但是还是避免不了大量的去访问数据库来更新库存。 将库存放到redis使用redis的incrby特性来扣减库存。 分析在上面的第一种和第二种方式都是基于数据来扣减库存。基于数据库单库存...原创 2022-04-20 09:18:57 · 1022 阅读 · 0 评论 -
Nginx 面试经典40问
什么是Nginx? Nginx 有哪些优点? Nginx应用场景? Nginx怎么处理请求的? Nginx 是如何实现高并发的? 什么是正向代理? 什么是反向代理? 反向代理服务器的优点是什么? Nginx目录结构有哪些? Nginx配置文件nginx.conf有哪些属性模块? cookie和session区别? 为什么 Nginx 不使用多线程? nginx和apache的区别 ..原创 2022-04-16 10:26:53 · 1890 阅读 · 0 评论