关于使用线程本地变量的理解
来源:14-9 缓存在高并发场景中的生产问题分享

weixin_慕娘1305685
2023-07-07
我的理解是:
我们有一个从数据库中查询会员数据的接口,在最开始的场景中,我们每次都是调用这个接口来获取会员数据。
再加入会员本地变量之后,我们就在查询会员数据的接口中加入下面这个逻辑:
会员数据查询接口:
- 如果线程本地变量有当前会员的数据:直接返回本地变量中的会员数据
- 如果没有:去数据库中查,然后加入到线程本地变量然后返回
不知道我的理解对不对。
如果是这样的话我有一个疑惑,那就是线程本地变量中的会员信息该再什么时候清楚。不然随着请求的增多线程本地变量会越来越臃肿
写回答
2回答
-
weixin_幕布斯3232400
2023-09-06
线程本地变量是线程私有,所以一般一个线程本地变量里面只存储了当前线程的会员信息
00 -
甲蛙
2023-07-10
你这个想法应该是缓存的用法,线程本地变量只在当前线程(一次请求)有效,一般是在前置通知里放入,在后置通知里移除,不移除也没有关系,同一个线程在被多个请求反复使用时,线程本地变量会一直覆盖前面的,一个线程始终只有一个。
如果你的用户信息是要反复使用,多个请求都用同一个用户,应该是使用缓存。
032024-09-06
相似问题