使用 StackExchange.Redis 的 Redis 密码

Posted

技术标签:

【中文标题】使用 StackExchange.Redis 的 Redis 密码【英文标题】:Password for Redis with StackExchange.Redis 【发布时间】:2014-05-28 23:02:08 【问题描述】:

如何使用 StackExchange.Redis 指定 Redis 服务器的密码?我猜你将它添加到传递给 Connect 方法的配置字符串中。我似乎找不到需要指定的格式。

【问题讨论】:

已添加完整的配置字符串详细信息,顺便说一句:github.com/StackExchange/StackExchange.Redis/blob/master/Docs/…(文档不是新的,但中间的表格是) 【参考方案1】:

我明天会将完整的键/值对列表添加到the configuration docs。简短版本是:可能是“foo,password=value”。更长的版本是:使用ConfigurationOptions 并设置.Password。该文档向您展示了如何在两种布局之间切换。

【讨论】:

那么我是否理解正确,如果您有多个受密码保护的端点,他们需要使用相同的密码?每个端点不能有一个密码吗? 工作网址是:github.com/StackExchange/StackExchange.Redis/blob/master/docs/… @balint 关闭;实际上是:stackexchange.github.io/StackExchange.Redis/Configuration - 转移到 github 页面是破坏链接的原因【参考方案2】:

这就是我让它工作的方式(请注意,简单地添加像"localhost:6379,password=value" 这样的密码对我不起作用 - 它需要在选项中设置):

var options = ConfigurationOptions.Parse("localhost:6379"); // host1:port1, host2:port2, ...
options.Password = "yourPassword";      
ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(options);

IDatabase conn = redis.GetDatabase();

假设您通过以下方式运行它:

docker run -d -p 6379:6379 --name yourRedisInstance redis --requirepass yourPassword

如果 docker 镜像没有使用密码运行,只需删除行 options.Password = "yourPassword"; 在这种情况下,每个人都可以在没有密码的情况下访问 Redis 服务(如果缓存中有需要的数据,则不应该这样做)受到保护)。

【讨论】:

【参考方案3】:

如果你使用的是本地的,你可以这样使用

"localhost, port:6379, password="YOUR_PASSWORD""

在服务器中

"http://server, port:6379, password="YOUR_PASSWORD"

【讨论】:

以上是关于使用 StackExchange.Redis 的 Redis 密码的主要内容,如果未能解决你的问题,请参考以下文章

StackExchange.Redis中文使用文档

StackExchange.Redis 基本使用 (转)

stackExchange.redis的使用

如何使用 StackExchange.Redis 将 Redis Key 插入为整数

扩展 StackExchange.Redis 支持实体

Jexus~mono中使用StackExchange.redis的问题