【EasyServer】Node公共服务设计—Redis实现服务缓存机制

134 阅读1分钟

前言

这一套公共服务的最大特点是高集成度的配置化方案,基于此我们有鉴权的配置、转发的配置、权限的配置等等。

服务配置缓存

初衷

数据库中读取配置太慢了,况且有可能还要关联表查询,那就更慢了,但配置是更新频繁的常用项,所以这部分是一个重点优化的对象。

举个例子,总不能当前site及对接的server有关配置项,我都要重新关联表去查询吧。sql查得可能不止一张表,但缓存可以是一套整合后的数据。

当然,比如说SSO登陆状况等,也适合做一下缓存,避免重复远程验签

缓存哪些内容?

  • 站点缓存
  • 下游服务缓存
  • 应用配置项缓存
  • 权限缓存
  • 用户登陆信息缓存
export enum Redis_Key {
  Sites = 'sites',
  Servers = 'servers',
  User_Prefix = 'userinfo_',
  CmParams = 'common_params',
  Sites_config = 'sites_config',
  Upm_Zone = 'upm_zone',
}

如何缓存?

写操作

image.png

类似登录用户信息这部分,需要配置缓存时间

image.png

清除缓存

image.png

如何读取缓存?

image.png

什么时机缓存?

  • 通常在上述所有配置项的sql写数据时,都会进行同步写redis(更新缓存)
  • 部分缓存,保证数据库和缓存之间的一致性,加了服务定时更新 image.png
  • 启动服务时,主动更新一次缓存 image.png
  • 设置缓存有效期 image.png