我想在单个调用中使用键列表从Redis获取所有集合。根据文档,Redis为此提供了SSCAN命令,但是由于我使用StackExchange.Redis作为Redis适配器,因此我猜想此命令在此适配器中没有任何此类方法。所以我要寻找两件事:
谢谢
在单个调用中获取许多SET的示例C#代码如下:我使用StackExchange.Redis作为Redis连接器:
using StackExchange.Redis;
using System;
using System.Text;
namespace RedisGetMultipleKeys
{
/// <summary>
/// Class to perofrme operations on SE.Redis
/// </summary>
class Program
{
/// <summary>
/// Executes necessary pre-requisites
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
//Connect Redis
var _cache = Program.Connect();
//Store 10k Sets
string prefix = "user";
StringBuilder keys = new StringBuilder();
for (int i = 0; i < 10000; i++)
{
keys.Append(" " + prefix + i);
_cache.SetAdd(prefix + i, i);
}
var keyList = new RedisKey[10000];
//Generate keys array
for (int i = 0; i < 10000; i++)
{
var key = new RedisKey();
key = prefix + i;
keyList.SetValue(key, i);
}
var startTime = DateTime.Now;
//Perform SUNION
var values = _cache.SetCombine(SetOperation.Union, keyList);
var endTime = DateTime.Now;
TimeSpan diff = endTime.Subtract(startTime);
Console.WriteLine("total time taken to read 10k keys = " + diff);
Console.Read();
//TODO: to be changed accordingly to read Set values returned other than String
foreach (var value in values)
{
Console.WriteLine(value.ToString());
}
endTime = DateTime.Now;
diff = endTime.Subtract(startTime);
Console.WriteLine("total time taken to read 10k keys = " + diff);
Console.Read();
}
/// <summary>
/// Connects to Redis db
/// </summary>
/// <returns>Returns an instance of Redis db</returns>
private static IDatabase Connect()
{
string redisConnection = "localhost:6379,ssl=false,allowAdmin=true,ConnectRetry=3,ConnectTimeout=5000,defaultDatabase=1";
ConnectionMultiplexer connection = ConnectionMultiplexer.Connect(redisConnection);
return connection.GetDatabase();
}
}
}
我希望它能帮助C#开发人员寻找解决方案。由于Mgravell从SE.Redis开发团队由他的建议帮助我。在GitHub上可以找到更多讨论,如何通过在单个调用中传递集合密钥列表来获取多个集合
问题内容: 使用ServiceStack,是否可以执行多个读取命令(特别是ContainsKey命令)? 存储的对象需要一段时间才能从数据库中获取,因此我们希望仅获取那些不在缓存中的对象。 我知道我可以向redis请求该对象,然后从数据库中获取是否返回null,但是存储的对象相当大,所以我宁愿只获取布尔列表,然后确定要查询的id在数据库中。 目前,我正在遍历我的Ids列表(最多100个左右),并在
问题内容: 是否可以使一个Redis Lua脚本命中多个数据库?我目前在DB 0中拥有一种类型的信息,而在DB 1中具有另一种类型的信息。我的正常工作流程是基于API调用以及来自DB 0的元信息对DB 1进行更新。 Lua脚本,但无法弄清楚如何打多个数据库。我正在使用redis-py在Python中执行此操作: 由于客户端暗示一个特定的数据库,所以我被困住了。有想法吗? 问题答案: 将相关数据放入
主要内容:第一个Lua脚本命令,为什么使用Lua脚本,常用脚本命令,基本命令应用从 Redis 2.6 版本开始,Redis 使用内置的 Lua 解释器执行脚本,这意味着我们可以直接在 Redis 客户端执行Lua 脚本 ,于此同时 Redis 还非常贴心地提供了用于编写 Lua 脚本的 命令。 第一个Lua脚本命令 Lua 是一种轻量小巧、开源的脚本语言,用标准 C语言编写。其设计目的就是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。它被广泛的应用于:游戏开发
问题内容: 我想将要在以后使用的命令存储在变量中(不是命令的输出,而是命令本身) 我有一个简单的脚本,如下所示: 但是,当我尝试更复杂的操作时,它会失败。例如,如果我做 输出为: 知道如何将这样的命令(带有管道/多个命令)存储在变量中以备后用吗? 问题答案: 使用eval:
我们如何从命令行运行多个jmeter脚本。我有以下脚本test1.jmx test2.jmx test.3.jmx 现在,如果我想从命令行传递线程和循环,我该怎么做?我知道对于一个脚本,我们可以使用以下语法线程 ${__P(“线程”,25)},但是对于多个脚本,我们该怎么做
问题内容: 我在远程计算机上有一个Java程序。它在同一文件夹中有一个配置文件。当我通过SSH进入计算机时,我会执行以下操作: 这里的问题是配置文件不在路径中,因为我们在主文件夹中,所以我的程序无法读取配置。 我想先进入该文件夹,然后从该文件夹运行程序。在shell脚本中,如果我这样做 它执行第一条语句,第二条语句运行时,它在我的当前计算机而不是远程计算机上运行。 我们可以只执行一个命令还是对此有