jwt与token+redis,哪种方案更好用?

博客探讨了JWT与Token+Redis两种方案的优劣,JWT去中心化,适合第三方认证等场景,但无法主动过期token;Token+Redis中心化,实时检测需求高时适用。还介绍了电商网站50W - 100W高并发秒杀功能的实现思路,包括浏览器端、Nginx层过滤,布隆过滤器筛重,Redis管理库存等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问:jwt与token+redis,哪种方案更好用?

其实JWT就是Json Web Token,就是Token的典型方式。题主的JWT和Token+Redis的区别,其实都是Token,只是JWT的可靠性保障是来源于加密算法(对称加密和非对称两种),而Token+Redis的方案是依靠的后台数据存储。这两个本质也就带来了使用上的区别:

1 JWT是去中心化的,不需要任何后台数据的共享,第三方认证、跨数据中心认证、微服务等,都适合采用JWT的方式,当然,因为是去中心化的,不是实时验证,所以本质上来说token的主动过期是做不到的(要做到就会违背初衷)

2 Token+Redis是中心化的,要能识别token必须能访问该Redis,除非是有特别需求,要求每次token都实时检测,否则的话还是选择JWT,毕竟是成熟通用的技术,沟通维护成本也低,对开发者也友好一些。

当然,一定要聊细节,其实还有很多,其他很多回答也都非常精彩。对比两种技术这种话题,抓住根本是关键,至于怎么选择,根据项目实际情况来就好了~

问:电商网站中,50W-100W高并发,秒杀功能是怎么实现的?

秒杀的套路千千万,反正物品肯定满足不了需求,抢不到东西也是正常的,所以套路可以全链路安排!下面以100w并发为例:

1 浏览器端直接随机过滤下,比如随机数1到100,是11就通过,完全看脸,1/100的概率能成功提交请求,开抢3s后不再成功,这会儿并发只剩下1w了

2 Nginx的反向代理层,都可以相同思路过滤下,检测下某个请求参数,留个1/10的概率通过,其他直接返回已抢光,并发能进入服务器的只有1000了

3 程序入口来个布隆过滤器,筛掉重复请求,到业务层了,直接基于Redis管理下库存,每次请求就直接decr返回库存现状,1000的并发单机就能hold住

4 库存等于0了,就在程序入口处拦截请求,后续请求也就不进业务处理环节了

轻松吗?什么,还有问题

下单后放弃?没关系,redis来个incr,入口处就又开始放请求进来了;

Redis挂了?来个集群嘛,1000并发能挂太难了,再说数据都在数据库呢,出不了大事儿,直接返回秒杀结束就是

情况还有很多很多,都是可以解决的,思维发散就好,以上也只是一种简单粗暴的设计方式,抛砖引玉下

更多精彩问答,

欢迎大家关注Eleven老师的知乎

进入知乎 搜索添加Eleven

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值