thinkphp5 的文件缓存 和 直接保存到数据库的效率问题.

现在的场景是,一个用户要得到一个第三方的access_token , 这个access_token 有效期2 小时 ,tp5 里面有个Cache::set() 方法 , 我准备用 Cache::set('user_'.$uid , 1 , 60602); // 缓存2小时 , 但是看 框架cache 目录里面,一个缓存名称就是一个文件 , 意味着 我如果有 5万用户 , 就有 5万个 缓存文件 ....... ,感觉效率有点问题.
所以 问题是, 是直接把 时间戳 和 用户uid 保存到数据库 还是 直接用 这个 文件缓存呢 ?

阅读 5.1k
4 个回答

用redis把 别纠结了。我记得tp5的cache是可以设置存储方式的,把驱动改成redis 打一个服务就好了

access_token应该是不区分用户的,都可以用。

缓存可以设置为内存型数据库,并非只有文件,
你可以设置为 Redis 或者 Memcached

如果这个access_token是全站通用的,放文件里就行。
如果每个用户单独一个且只有用户端用得到,简单的做法是在数据库和session里都存一份,用的时候先从session里取。
其他的方法就是使用redis之类的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题