Rik*_*iky 6 lua set redis stackexchange.redis
我想在一次调用中使用键列表从 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();
}
}
Run Code Online (Sandbox Code Playgroud)
}
我希望它能帮助 C# 开发人员寻找解决方案。感谢SE.Redis 开发团队的Mgravell通过他的建议帮助我。更多讨论可以在 GitHub 上找到如何通过在一次调用中传递设置键列表来获取多个设置
归档时间: |
|
查看次数: |
2376 次 |
最近记录: |