通过C#在Redis中放入一个密钥



我正在尝试构建自定义DLL,它将特定的键放入Redis键值存储中。我构建、执行,但什么都不做。未添加密钥。这是我迄今为止的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using TSLab.Script;
using TSLab.Script.Handlers;
using StackExchange.Redis;
namespace TSLab.pmus
{
[HandlerCategory("Redis")]
[InputsCount(2)]
public class WriteToRedis : ITwoSourcesHandler, ISecurityInput0, IDoubleInputs, IDoubleReturns, IStreamHandler, IValuesHandlerWithNumber, IContextUses
{
private ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost");
public IContext Context { set; private get; }
[HandlerParameter(Name = "table", NotOptimized = true)]
public int table { get; set; }
[HandlerParameter(Name = "key", Default = "mykey", NotOptimized = true)]
public string key { get; set; }
public IList<double> Execute(ISecurity sec, params IList<double>[] dataArr)
{
return new double[0];
}
public double Execute(ISecurity sec, ConnectionMultiplexer redis, params double[] dataArr)
{
IDatabase db = redis.GetDatabase(table);
db.StringSet("testKey", "Test string");
return 0;
}
}
}

正如@MarcGravell所说,问题出在两个"执行"方法中。我将代码更改为:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using TSLab.Script;
using TSLab.Script.Handlers;
using StackExchange.Redis;
namespace TSLab.pmus
{

[HandlerCategory("Redis")]
[InputsCount(2)]
public class WriteToRedis : ITwoSourcesHandler, ISecurityInput0, IDoubleInputs, IDoubleReturns, IStreamHandler, IValuesHandlerWithNumber, IContextUses
{
private ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost");
public IContext Context { set; private get; }
[HandlerParameter(Name = "table", NotOptimized = true)]
public int table { get; set; }
[HandlerParameter(Name = "key", Default = "mykey", NotOptimized = true)]
public string key { get; set; }
public IList<double> Execute(ISecurity sec, params IList<double>[] dataArr)
{ 
IDatabase db = redis.GetDatabase(table);
db.StringSet("testKey", "Test string");
return new double[0];
}
}
}

现在它运行良好。

最新更新