目前,我正在使用ServiceStack.Redis连接到Redis服务器。redis缓存URL结构类似于:redis://f:UIOPabcdXYZ@ip-172-31-81-144.manager.{domain}.io:33004
下面是使用ServiceStack.Redis连接到Redis的示例代码
var redisClientManagerPool = new RedisManagerPool(ConfigManager.RedisCacheUrl);
using (var client = redisClientManagerPool.GetClient())
{
//SetClientData(key, client, data);
}但是免费版本有一定的限制,一旦达到限制,就会产生错误,例如
已经达到了每小时6000个红宝石请求的免费配额限制.请参阅https://servicestack.net以升级为商业许可,或访问https://github.com/ServiceStackV3/ServiceStackV3以恢复到免费的ServiceStack v3
我想使用StackExchange.Redis连接到redis缓存。但我没有得到任何代码参考如何使用来自https://stackexchange.github.io/StackExchange.Redis/Basics的redis。
我正在寻找任何代码引用来使用redis缓存URL,如redis://f:UIOPabcdXYZ@ip-172-31-81-144.manager.domain.io:33004,通过使用StackExchange.Redis nuget连接到redis缓存服务器。任何帮助都是非常感谢的。
注意:当前使用的库是.NET标准2.0版本的ServiceStack.Redis。nuget的名称是ServiceStack.Redis.Core版本5.7.0。
发布于 2020-01-03 08:04:38
StackExchange.Redis适用于redis://f:UIOPabcdXYZ@ip-172-31-81-144.manager.{domain}.io:33004 URL格式。下面是代码参考:
var url = "redis://f:UIOPabcdXYZ@ip-172-31-81-144.manager.{domain}.io:33004";
var urlParts = url.Split("@ip-");
var password = urlParts[0].Split("redis://f:")[1].Trim();
var host = "ip-" + urlParts[1].Split(":")[0].Trim();
var port = int.Parse(urlParts[1].Split(":")[1].Trim());
var redisConfigurationOptions = new ConfigurationOptions
{
AllowAdmin = false,
Ssl = false,
Password = password,
EndPoints = {
{ host, port }
}
};
var conn = ConnectionMultiplexer.Connect(redisConfigurationOptions);
var client = conn.GetDatabase();
client.StringSet(cacheKey, Newtonsoft.Json.JsonConvert.SerializeObject(data), TimeSpan.FromMinutes(30));
//To retrieve data
if (client.KeyExists(cacheKey))
{
var outputString = client.StringGet(cacheKey).ToString();
}
else
{
//cacheKey doesn't exists
}https://stackoverflow.com/questions/59551946
复制相似问题