解决 nodejs 集群 session 同步问题

May 11, 2021

使用 connect-redis

const redis = require("redis")
const session = require("express-session")

let RedisStore = require("connect-redis")(session)

let redisClient = redis.createClient(6379, "localhost")

app.use(
  session({
    store: new RedisStore({ client: redisClient }),
    saveUninitialized: false,
    secret: "keyboard cat",
    resave: false,
  })
)

上面使用后 session 就直接是 redis 里面了。

redis 集群的使用

redis 不支持集群这个时候使用 ioredis

const Redis = require("ioredis")
const session = require("express-session")

let RedisStore = require("connect-redis")(session)

const cluster = new Redis.Cluster([
  {
    port: 6380,
    host: "127.0.0.1",
  },
  {
    port: 6381,
    host: "127.0.0.1",
  },
])

app.use(
  session({
    store: new RedisStore({ client: cluster }),
    saveUninitialized: false,
    secret: "keyboard cat",
    resave: false,
  })
)

Profile picture

Written by Vance who lives and works in Shenzhen, China, and is working hard to improve. You should follow them on csdn