关于wechat或者百度云的token,用什么方式存储比较合适

微信的token,百度那些api的token,用什么方式存储比较好一点?波总有建议吗?放数据库,或者放缓存redis(目前项目没用到缓存,不考虑),还是放个静态变量放代码里面,然后周期更新,如果周期更新的话,是每次获取时判断是否失效比较好,还是后台开一个线程定期更新比较好呢?

评论区

杜福忠

2018-03-22 21:04

看调用量呗, 非常低就直接数据库了呗 , 如果有些频繁 就用 jfinal集成的EhCache整整呗 , 还有 jfinal-weixin 里面 static IAccessTokenCache 默认就是用的 Map , 同时开发者可以自由选择使用 EhCache 或者Redis 或是自己实现的

JFinal

2018-03-22 22:06

先放数据库,如果性能足够就可以这样用着,如果需提升性能,再引入一个从应用到数据库的中间层 cache

放数据库方便做集群,而且重启应用时依然有效,因为数据库是持久化数据

JFinal9527

2018-03-23 09:58

@JFinal 如果放数据库的话,每次调用去计算失效时间吗?如果快失效就重新申请?

JFinal

2018-03-23 11:21

@JFinal9527 如果是放 cache 中,也取来 token 也是要看看是否过期,过期时间是在放在 cache 当时就计算好的,取出来的时候只需要与系统当前时间对比一下就可以了

当然,你如果用的 ehcache 可以设置最大存活时间,让 ehcache 的过期功能来代替判断,不过你仍然也可判断 cache 是否存在,不存在代表已过期

热门反馈

扫码入社