如何在 .Net 应用程序中查看所有存储的会话的 REDIS 键和值?

Posted

技术标签:

【中文标题】如何在 .Net 应用程序中查看所有存储的会话的 REDIS 键和值?【英文标题】:How can I view all the stored session's REDIS keys and values in .Net application? 【发布时间】:2016-01-13 00:56:29 【问题描述】:
Session["User"] = "LTA";

我在我的应用程序中使用了这个会话。 我无法在 .net 应用程序中查看此存储的会话值。 我尝试了以下方式:

ConnectionMultiplexer redisConnection = ConnectionMultiplexer.Connect("hostname,ssl=true,password=privatekey,allowAdmin=true");

var redisServer = redisConnection.GetServer("hostname", port);

在这里我可以使用以下代码获取密钥列表和客户列表:

redisServer.Keys()
redisServer.ClientList()

但关键值显示如下

\skdkhciduhcahoaids_Data

\skdkhciduhcahoaids_Internal

这是加密的密钥值吗? (这是我的第一个查询)

那么, 如果我在多个浏览器中打开应用程序,此结果不会改变。但实际上,如果我在 2 个浏览器中打开应用程序,我需要 4 个结果,因为当应用程序在 2 个浏览器中运行时,已经处理了 2 个会话。

为什么它给出相同的结果?

我可以在 redis 连接中查看存储的会话值吗?如果是意味着我如何查看会话值?

提前谢谢.....

【问题讨论】:

灵感:redis.io/commands/KEYS 和这个 Python 问题 ***.com/questions/5252099/… @KristofferBohmann:是的。我们可以通过运行 Redis-cli.exe 来获取所有的密钥。但我需要 .Net 应用程序中具有价值的密钥列表。 【参考方案1】:

我得到了第一个和第二个问题的解决方案:

这是加密的密钥值吗?

ASP.Net 会话 id 已作为 REDIS 缓存的键存储。

REDIS's Key of Stored session value

为什么会给出相同的结果?

当我使用相同的用户登录时,它会显示相同的结果。但是如果我用不同的用户登录,每次登录都会显示不同的结果。

【讨论】:

以上是关于如何在 .Net 应用程序中查看所有存储的会话的 REDIS 键和值?的主要内容,如果未能解决你的问题,请参考以下文章

如何将从“选择”查询中获得的值存储到 ASP.net 中的会话变量中

是否可以在 C# 中遍历存储在服务器上的所有会话

查看php会话变量

我在 asp.net MVC 中进行会话处理它在查看页面按钮上工作我无法在我的控制器中的另一个操作上获得会话 [重复]

如何查看 Windows Server 2016 中所有 PowerShell 会话的命令历史记录?

将 ASP.NET 会话传递给 jQuery