当前位置: 首页 > 面试题库 >

如何从Redis保存和检索会话

米俊晤
2023-03-14
问题内容

我正在尝试将Redis会话集成到用Node.js编写的身份验证系统中。

我已经能够成功设置Redis服务器connect-redis和Express服务器。

这是我的设置(只是重要的一点):

var express = require("express");
var RedisStore = require("connect-redis")(express);
var redis = require("redis").createClient();

app.use(express.cookieParser());
app.use(express.session({
    secret: "thisismysecretkey",
    store: new RedisStore({ host: 'localhost', port: 6379, client: redis })
}));

现在…我该如何实际创建,阅读和销毁会话?我已经阅读了connect- redis很多关于如何设置的文章以及关于SO的许多问题,但是我发誓每个都只停留在配置上,并且不解释如何实际使用它…

我知道这可能非常简单,但是请不要投票,而只是解释一下:)。


问题答案:

那应该就是它的全部了。您可以通过在路由处理程序中访问会话req.session。这些会话将自动创建,保存和销毁。

如果您需要为用户手动创建新会话,请致电req.session.regenerate()

如果您需要手动保存,可以致电req.session.save()

如果您需要手动销毁它,可以致电req.session.destroy()

有关方法和属性的完整列表,请参见Connect文档。



 类似资料:
  • 问题内容: 我将如何存储my_dict并使用Redis进行检索。例如,以下代码不起作用。 问题答案: 您可以通过(使用来设置多个键)来做到这一点。

  • 问题内容: 最初,我询问关于查询.rdb文件的问题,这不是我想要做的-我将查询活动服务器。 我将开始一个项目,在该项目中,我们将使用RDB快照在发布/订阅场景中使用Redis。 .Net WCF客户端将通过Marc Gravell的 BookSleeve配置Redis连接并接受传入的请求。 启用RDB快照后,将创建增量快照。 我希望客户端能够根据给定的频道和日期范围来检索数据集。我当时以为我将对读

  • 问题内容: 我无法在Redis数据库中设置和检索带有重音符号的字符串。 带重音符号的字符被编码,如何将它们放回原处? 问题答案: Redis服务器本身将所有数据存储为二进制对象,因此它不依赖于编码。服务器将只存储客户端发送的内容(包括UTF-8字符)。 以下是一些实验: c3a9是’é’char的表示。 实际上,数据已正确存储在Redis服务器中。但是,当它在终端中启动时,Redis客户端会解释输

  • 问题内容: 我正在尝试存储一个Integer并使用KeyChain对其进行检索。 这是我如何保存它: 这是我尝试检索它的方式: 我收到以下错误: 无法将类型’__NSCFNumber’的值强制转换为’NSString’ 我尝试使用变量,但没有成功。 问题答案: 好吧,我只是用光了源代码等,并做了自己的好帮手:尽情享受吧!

  • 问题内容: 我希望我网站的管理员能够更改某些页面的文本。使用满足感对于我来说是完美的。 问题是我只知道如何用PHP编程。我已经在互联网上搜索了数小时,试图使它对我有用,但是我只是不理解用于存储数据以使其有效的编程语言。 这就是我希望的工作方式: 1.管理员点击“编辑”按钮 2. div可编辑。 3.当管理员准备好编辑时,他点击“保存”按钮 。4.数据被保存到文件或数据库中(不知道什么是最好的选择)

  • 问题内容: 我在Playground中使用Swift 3,Xcode 8.0拥有此功能: 创建人员数组 编码数组 保存到用户默认值 检查 从userDefaults返回 只需检查存档的数据 我无法正确将数据对象保存到userDefaults,此外,底部的检查还会产生错误“严重错误:在展开可选值时意外发现nil”。“检查”行还显示已保存的对象为nil。这是我对象的NSCoder中的错误吗? 问题答案