使用StackExchange.Redis.dll访问redis,redis环境是集群环境,但是我根据集群环境对外的ip和端口访问获取数据GetDataBase(),然后使用模糊查询的时候,查到的信息不全。这个代码应该怎么实现才能查到想要的所有信息。
其中cacheResultArr的长度为1,我从redis管理工具查到的不只是1条。
private static ConnectionMultiplexer redis;
private static readonly object Locker = new object();
private IDatabase db { get; set; }
public static ConnectionMultiplexer Manager
{
get
{
if (redis == null)
{
lock (Locker)
{
if (redis == null || !redis.IsConnected)
{
redis = GetManager();
}
}
}
return redis;
}
}
private static ConnectionMultiplexer GetManager(string connectionString = null)
{
if (string.IsNullOrEmpty(connectionString))
{
connectionString = ConfigurationManager.AppSettings["redisAddress"];
}
return ConnectionMultiplexer.Connect(connectionString);
}
public void Init() {
//redis = ConnectionMultiplexer.Connect(connectString);
db = Manager.GetDatabase();
LogInfoHelper.Write("-----初始化,连接Redis-----");
string kpatternAfc = ConfigurationManager.AppSettings["kpatternAfc"];
var script = "return redis.call('keys',@pattern)";
var prepared = LuaScript.Prepare(script);
var cacheResult = db.ScriptEvaluate(prepared, new { pattern = kpatternAfc });
if (cacheResult.IsNull)
{
return;
}
else
{
string[] cacheResultArr = (string[])cacheResult;
foreach (string key in cacheResultArr)
{
var entries = db.HashGetAll(key);
foreach (var item in entries)
{
}
}
}
}