GaryLee's Blog
08
26
什么是倒排索引? 什么是倒排索引?
一、背景在ElasticSearch中,通过关键字/关键词去查找对应文本的过程,是由全文检索引擎实现的。 全文检索引擎就是对非结构化文本进行解析、搜索的技术,而非结构化文本的处理关键在于分词与倒排索引。 二、什么是倒排索引?在Elastic
2023-08-26
26
为什么要使用ElasticSearch? 为什么要使用ElasticSearch?
一、为什么要使用ElasticSearch?因为在我们的业务场景中,可能会有大数据量的查询场景,这时候如果我们用常规的缓存和数据库来提供支持,在极端情况下可能会出现实例负载过高,导致系统不可用。 所以我们需要选择一款支持大数据量查询的框架或
2023-08-26
25
什么是服务降级? 什么是服务降级?
一、什么是服务降级?服务降级是一种提高系统稳定性和可用性的策略,简单来说,就是当服务器压力增加时,根据业务需求判断,从而不对外提供部分非核心服务的功能。 简单举个例子,在秒杀系统中,如果秒杀过程中服务器出现宕机或者部分依赖服务不可用了,做与
2023-08-25
25
如何实现多级缓存? 如何实现多级缓存?
一、什么是多级缓存?多级缓存指的是在系统的不同环节都添加缓存,以提高系统性能 我们一般工作中提到的多级缓存一般是本地缓存+分布式缓存: 本地缓存:指在当前服务里使用到的缓存,一般使用的是Guava和Caffeine框架,都提供了缓存的过期
2023-08-25
25
如何设计一个购物车功能? 如何设计一个购物车功能?
一、什么是购物车功能?购物车指的是用户在选购商品的时候,用来将用户意向购买的商品存放的地方,从而方便用户后续找到这些商品并进行统一支付 购物车的主要元素有: 商品ID 商品数量 折扣 添加后的价格变化 … 购物车的主要操作有: 下单
2023-08-25
23
Redis为什么这么快? Redis为什么这么快?
一、Redis为什么这么快?Redis之所以这么快,主要是有以下几个方面的原因: 基于内存:由于Redis是内存数据库,即数据存储在内存中,数据的读写速度非常快,同时内存访问速度远比磁盘访问速度快得多 单线程模型:由于Redis底层用的是
2023-08-23
22
Spring Bean的生命周期 Spring Bean的生命周期
一、Spring Bean的生命周期Spring Bean的生命周期主要分为五个阶段: 准备阶段 实例化(Instantiation) 属性赋值(Populate) 初始化(Initialization) 销毁(Destruction)
2023-08-22
20
如何防止库存超卖? 如何防止库存超卖?
一、什么是库存超卖?库存超卖指的是商品的库存超过我们预计卖出的数量(比如双11可以用9.9抢购iphone手机,但是总共只有10台,如果没处理导致最终被抢购了100台、1000台,超过了预计卖出的数量,就是库存超卖问题) 一般我们在做商品库
2023-08-20
20
20
limit 1000000,0加载很慢如何优化? limit 1000000,0加载很慢如何优化?
一、问题分析在MySQL中,limit ${offset},${row}表示查询前面offset+row条记录,然后抛弃前offset条记录,读取后row条记录,所以offset越大,偏移量越大,查询性能也就越差 二、优化方案 优化前:se
2023-08-20
20
如何实现一个扫码登录功能? 如何实现一个扫码登录功能?
一、什么是扫码登录?扫码登录指的是通过已经登录的APP应用,取扫描未登录的Web端程序中的二维码,通过某种机制触发登录凭证的写入从而实现Web端自动登录的过程 二、扫描登录的流程扫码登录的流程主要有以下几步: Web端打开登录页面,请求服
2023-08-20
19
如何处理Redis的大key问题? 如何处理Redis的大key问题?
一、什么是大key?Redis的大key指的是存储了大量数据的key,一般是因为元素过多导致的(如set、zset等),也有可能是因为value比较大(如string) 二、大key会带来什么问题?大key可能会存在以下几个问题: 占用内
2023-08-19 GaryLee
1 / 3