通过 C# 在 Redis 中放置一个密钥
Posted
技术标签:
【中文标题】通过 C# 在 Redis 中放置一个密钥【英文标题】:Put a key in Redis via C# 【发布时间】:2021-12-30 19:51:33 【问题描述】:我正在尝试构建自定义 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;
【问题讨论】:
你能告诉我们你是如何在启动时配置它的吗? @user3401335 此代码旨在作为名为 TSLab 的软件的插件。我链接了使用 TSLab.Script 和 TSLab.Script.Handlers 的 DLL 的一些依赖项,就像它在文档中所说的那样。它可以正确构建,只是无法按预期工作。 如果你调试它:如果两个 Execute API 被执行,哪个?如果是第一个,那么:你什么都没做。 @MarcGravell 是的。你完全正确! 【参考方案1】:正如@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];
现在它可以正常工作了。
【讨论】:
以上是关于通过 C# 在 Redis 中放置一个密钥的主要内容,如果未能解决你的问题,请参考以下文章
如何使用视图通过 MVC 在 Sencha Touch 2.0 中放置一个按钮
在 C# .cs 文件中放置 using 语句的位置[重复]
在 Visual C# 中获取 Components 类以在面板中放置图像