【缓存】3-Redis过期策略

【缓存】3-Redis过期策略

redis会将每个设置过期时间的key放到一个独立的字典中,以后会定时遍历这个字典来删除到期的key。 除了使用定时遍历之外,还会使用惰性删除,即访问的时候检查key是否过期,如果过期了则删除。 通过......
阅读全文
【缓存】2-Redis数据类型以及应用场景

【缓存】2-Redis数据类型以及应用场景

redis 都有哪些数据类型?分别在哪些场景下使用比较合适?这两个问题都是Java初级面试中常见的问题。简单说一下。 一、Redis数据类型 String:纯字符串,可以进行incr、desc 加减......
阅读全文
【搜索引擎】1-ES基本概念

【搜索引擎】1-ES基本概念

lucene 是最先进、功能最强大的搜索库。如果直接基于 lucene 开发,非常复杂,即便写一些简单的功能,也要写大量的 Java 代码,需要深入理解原理。 elasticsearch 基于 luc......
阅读全文
【消息队列】5-如何保证消息的顺序性?

【消息队列】5-如何保证消息的顺序性?

一、场景介绍 1、消息严格有序场景 比如客户开车出事故了需要保险公司来处理,至少要有以下几个步骤: 报案、查勘定损、立案、收单理算支付、结案等环节,这些环节是严格有序的。保险公司每完成一个环节,需要给......
阅读全文
【消息队列】2-如何保证消息队列的高可用?

【消息队列】2-如何保证消息队列的高可用?

如果面试官问我们如何保证消息队列的高可用?我们可以说其中一个自己熟悉的MQ去跟他讲。 所谓MQ高可用无非是MQ挂了,怎么保证数据不丢失,系统正常运行。一般都是通过搭建集群模式来做,数据会有副本。 &n......
阅读全文
RocketMQ浅谈与总结

RocketMQ浅谈与总结

1、为什么要用MQ? 解耦 多个项目之间通过消息队列对同一消息进行处理,避免调用接口失败导致整个过程失败。目的是跟调用接口是一样的,只不过 MQ 可以异步、失败尝试、消息堆积等。 异步 生产者......
阅读全文