0
我正在使用Redis爲我的ExpressJS應用程序存儲會話數據,並且在過去遇到了一些問題,其中持久cookie保持我的用戶登錄導致開發問題。我試圖用redis-cli清除我的會話數據,但儘管運行了DEL KEYS *
並被給予了(integer) 0
響應,但我仍然在運行KEYS *
時看到會話出現。任何人都可以幫我刪除這些數據嗎?Redis不刪除會話密鑰
例如:存儲會話數據,
127.0.0.1:6379> KEYS *
1) "sess:O7pchKqe-n7NUhP3lBANaf7LMjJG0U0a"
2) "sess:tSyQCCISPBpH88zT3MJjHw2tidttMdRs"
127.0.0.1:6379> DEL KEYS *
(integer) 0
127.0.0.1:6379> KEYS *
1) "sess:O7pchKqe-n7NUhP3lBANaf7LMjJG0U0a"
2) "sess:tSyQCCISPBpH88zT3MJjHw2tidttMdRs"
ExpressJS代碼:
var express = require('express');
var app = express();
var passport = require('passport');
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var session = require('express-session');
var RedisStore = require('connect-redis')(session);
var path = require('path');
//Port Setting
var port = process.env.PORT || 3000;
//Set Morgan as Logger
app.use(morgan('dev'));
//Extract POST Data
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
//Session Cookie
app.use(cookieParser());
app.use(session({
store: new RedisStore({
host: '127.0.0.1',
port: 6379
}),
secret: 'super-secret',
resave: true,
saveUninitialized: true,
cookie: {
httpOnly: true,
secure: false //turn to true on production once https is in place
}
}));
我想你想['flushdb'](http://redis.io/commands/flushdb)刪除所有密鑰。 'del'沒有辦法指定通配符。 'del keys *'會嘗試刪除兩個鍵:一個叫做「keys」,另一個叫做「*」。 – smarx
順便說一下,響應'0'表示0個鍵已被刪除。 – smarx
@smarx完美地工作,並感謝有關0響應的提醒。你能否提供這個答案作爲答案,我會標記爲正確的? – cphill