优化字符串数组和Object数组使用,减少GC分配
This commit is contained in:
parent
868f994cdd
commit
1b16e8369d
|
@ -470,7 +470,11 @@ public class FullRedis : Redis
|
|||
{
|
||||
if (keys == null || keys.Length == 0) return 0;
|
||||
|
||||
keys = keys.Select(GetKey).ToArray();
|
||||
//keys = keys.Select(GetKey).ToArray();
|
||||
for (var i = 0; i < keys.Length; i++)
|
||||
{
|
||||
keys[i] = GetKey(keys[i]);
|
||||
}
|
||||
if (keys.Length == 1) return base.Remove(keys[0]);
|
||||
|
||||
InitCluster();
|
||||
|
@ -481,7 +485,7 @@ public class FullRedis : Redis
|
|||
}
|
||||
else
|
||||
{
|
||||
return Execute(keys.FirstOrDefault(), (rds, k) => rds.Execute<Int32>("DEL", keys), true);
|
||||
return Execute(keys[0], (rds, k) => rds.Execute<Int32>("DEL", keys), true);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
|
|
@ -999,16 +999,17 @@ public class RedisClient : DisposeBase
|
|||
{
|
||||
if (values == null || values.Count == 0) throw new ArgumentNullException(nameof(values));
|
||||
|
||||
var ps = new List<Object>();
|
||||
var k = 0;
|
||||
var ps = new Object[values.Count * 2];
|
||||
foreach (var item in values)
|
||||
{
|
||||
ps.Add(item.Key);
|
||||
ps[k++] = item.Key;
|
||||
|
||||
if (item.Value == null) throw new NullReferenceException();
|
||||
ps.Add(item.Value);
|
||||
ps[k++] = item.Value;
|
||||
}
|
||||
|
||||
var rs = Execute<String>("MSET", ps.ToArray());
|
||||
var rs = Execute<String>("MSET", ps);
|
||||
if (rs != "OK")
|
||||
{
|
||||
using var span = Host.Tracer?.NewSpan($"redis:{Name}:ErrorSetAll", values);
|
||||
|
|
Loading…
Reference in New Issue