logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【OAuth2】OAuth2概述及使用GitHub登录第三方网站

OAuth 是一个开放的非常重要的认证标准/协议,允许用户授权第三方应用访问其存储在其他网站上资源,而无需将用户名密码提供给第三方网站的开放标准/协议。OAuth2 是 OAuth 的最新版本,同时也是被广泛应用的一个版本。我们在网站上常见的QQ登录,微信扫码登录,GitHub 授权登录就是基于 OAuth2.0 实现的。点击跳转。

文章图片
#github#web安全#spring boot +1
【Mysql】SQL性能分析

在控制台中通过命令命令可以提供服务器状态信息。通过上述命令,我们发现当前数据库是以查询为主,还是以增删改为主,从而为数据库优化提供参考依据。如果是以增删改为主,我们可以考虑不对其进行索引的优化;如果是以查询为主,那么就要考虑对数据库的索引进行优化了。如果当前数据库是以查询为主,那么我们可以借助于慢查询日志来定位针对于哪些查询语句进行优化。

文章图片
#mysql#sql#数据库
【Vue 2】 Vue2中两种路由跳转方式

路由跳转,就是写一个方法传递url参数,使其路由跳转。

#vue.js#javascript#前端
子类对象获得父类对象的所有属性值的三种方法

最主要的是,用反射感觉很6,当同学看不懂时,你可以轻轻松松装一手。这里简单解释一下,getDeclaredFields() 方法能获得类本身的所有属性但不能获得从父类那继承过来的属性,这是我们初学者最常用的一种方法,使用起来非常快乐,但是当父类的属性达到两位数时,不断地set就变得痛苦了起来…这个方法的限制性很强,这个测试方法只有在将子类和父类的属性都改成public时才能跑通。以上就是我想到的三

#java#开发语言#bug +2
Redis 缓存击穿问题 解决方案(二) 逻辑过期

​逻辑过期方案:用户查询某个热门产品信息,如果缓存未命中(即信息为空),则直接返回空,不去查询数据库。如果缓存信息命中,则判断是否逻辑过期,未过期返回缓存信息,过期则重建缓存,尝试获得互斥锁,获取失败则直接返回已过期缓存数据,获取成功则开启独立线程去重构缓存然后直接返回旧的缓存信息,重构完成之后就释放互斥锁。​由于线程获得锁之后要开启独立线程去重构缓存信息,那么我们最好提前声明定义一个线程池。​这

#缓存#redis#java
Redis 缓存击穿问题 解决方案(一) 互斥锁

第一个线程过来访问,获得锁,只有第一个线程能够去直接访问数据库,然后把数据写入缓存。第二个线程过来,没得到锁,只能不断重试去获得锁,直至第一个线程释放锁,然后第二个线程就能够直接从缓存中获得数据。一个查询产品信息的方法可能会同时存在缓存穿透和缓存击穿的问题,如何同时解决这两个问题这里暂不涉及,只关注如何解决缓存击穿问题。​为防止所有请求都直接访问数据库,于是就有了如下两种解决。​接下来编写业务方法

文章图片
#缓存#redis#数据库 +1
暂无文章信息