使用 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 密码的主要内容,如果未能解决你的问题,请参考以下文章