gpt4 book ai didi

node.js - redis:- 查询特定的 'email' 值

转载 作者:可可西里 更新时间:2023-11-01 11:12:09 25 4
gpt4 key购买 nike

在 express 中使用 redis 存储。

app.use(express.session({
store: new RedisStore({
host: 'localhost',
port: 6379,
db: 0,
pass: 'RedisPASS'
}),
secret: '1234567890QWERTY'
}));

以上创建

key : 'sess:0t-8-qJG5s0e3w4oGhBjxgAH  
value: {\"cookie\":{\"originalMaxAge\":null,\"expires\":null,\"httpOnly\":true
,\"path\":\"/\"},\"user\":{\"__v\":1,\"_id\":\"52946af6eee73dc84600000c\"
,\"email\":\"sa@abc.in\",\"name\":\"sa@abc.in\"}}

在上面,从 Node 界面,你如何查询特定的“电子邮件”值?

我想我需要在 Node 中包含 redis = require('redis');

最佳答案

正如其他人所说,对于这个用例,您可能想使用不同的方法。使用 Redis 的方法(就像在任何键/值存储中一样)是对数据进行非规范化,以便保留不同的“索引”。如果你知道你出于任何原因需要通过电子邮件访问你的 session ,那么你想要的就是在创建 session 存储 key 之后,比如

SET session_by_email:YOUR_USER_EMAIL SESSION_KEY

在你的例子中

SET session_by_email:sa@abc.in 'sess:0t-8-qJG5s0e3w4oGhBjxgAH

现在如果需要通过邮件访问session,只需要通过邮件获取session key,然后获取session数据

在不推荐的方法中,您还可以使用类似的方法遍历所有键

KEYS'sess*

因此,您将获得与 session 信息一起存储的所有 key ,并且您可以搜索(客户端)每个 key 的电子邮件。这会很耗时,当然我推荐反向索引选项,但如果出于任何原因你需要使用这种方法,那么升级到 redis 2.8 并改用 SCAN 命令,这样你就可以高效地查询你的 key 。

关于node.js - redis:- 查询特定的 'email' 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20240909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com