
安全
文章平均质量分 70
随心所向李先生
大家好
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
synchronized底层实现及优化机制
synchronized底层实现及优化机制前言首先介绍下synchronized锁,它属于互斥锁、悲观锁、同步锁、“重量级锁“”。它在1.6之前和1.6后加锁机制是不一样的。jdk1.6之前我简单说下流程,重点说下jdk1.6之后优化机制。jdk1.6之前可以看到synchronized加锁加的是内部的monitor对象,monitor是操作系统内部的对象,当多个线程一起访问synchronized修饰的代码块时,如果线程1先执行加锁的操作,然后执行业务方法,其他线程就会加不成功,然后阻塞在一个队原创 2021-05-21 12:59:44 · 260 阅读 · 0 评论 -
布隆过滤器原理及实现
布隆过滤器原理及实现前言最近有朋友面试经常被问到redis缓存穿透怎么解决,什么是redis缓存穿透呢?就是客户端去访问一个缓存和数据库都不存在的 key这样的查询直接打到数据库上。解决办法很多。1接口参数校验,2在缓存中设置空值,3布隆过滤器。本章咱们就来看下布隆过滤器怎么解决的什么是布隆过滤器布隆过滤器可以快速的从海量中数据校验一个数据是否存在。它内部结构由多个hash函数和一组bit数组成每个bit位置默认是0下面请看图实现过程1、把所有数据的位置信息添加到bit数组每条原创 2021-05-10 19:38:05 · 1527 阅读 · 10 评论 -
Redis架构模式
Redis架构模式前言reids在工作中经常会被用到,它的存储效率要明显高于关系数据库(因为它的数据是存储在内存中的),除此之外还可以用来验证一些操作,分布式锁等。那么有没有想过有一天所在的redis突然崩溃了,那该怎么办呢?当然首先我们要尽量避免这种情况,但是什么事情都有万一 万一发生呢?如果是只有一台redis服务器,那就等死 或者跑路吧,如果不想这样的结果,就告知你的老板多备用几台服务器,否则会有这样的风险。忽悠到几台服务器后,(口误,是拥有后),我们怎么来用多台redis服务器来解决这原创 2021-04-16 18:18:31 · 189 阅读 · 0 评论 -
怎么保证接口的幂等性
怎么保证接口的幂等性前言首先来说下幂等性这个概念吧,接口幂等性就是同一个接口多次调用的结果是一样的。场景:1、form表单操作,因为网络原因或者客户手快的原因连续点了好几次,数据库多了几条不该有的数据,或者某个字段的值修改结果跟逾期不符合。2、第三方接口回调 就拿支付回调来说,通常我们会在回调中更新下订单,还有添加一些支付信息等。多次调用会出现重复记录,或者订单某个字段的更新错误。上面的操作 总结下就是两种1、添加insert操作,会导致重复记录2、更新update操作,会导致数据更新错误原创 2021-04-16 15:28:07 · 758 阅读 · 1 评论 -
Redis分布式锁原理和实现
redis分布式锁实现一、写在前面说到锁,大家也不陌生,不管什么代码 加了锁也就意味着 同步 意味着性能会下降,但是有的业务场景不加还不行 当多个线程一个公共资源的时候比如我们熟悉的库存加减等,那么我们怎么解决呢?在传统单体应用单机部署的情况下,解决的办法很多比如用ReentrantLock或Synchronized关键字等,但是,随着业务发展的需要,原单体单机部署的系统被演化成分布式集群系统后,由于分布式系统多线程、多进程并且分布在不同机器上,这将使原单机部署情况下的并发控制锁策略失效,单纯的Ja原创 2021-04-13 16:19:30 · 951 阅读 · 0 评论