issues
search
2881099
/
csredis
.NET Core or .NET Framework 4.0+ client for Redis and Redis Sentinel (2.8) and Cluster. Includes both synchronous and asynchronous clients.
MIT License
2.01k
stars
414
forks
source link
xread,xrevrange bug
#472
Closed
snglw07
closed
1 year ago
snglw07
commented
1 year ago
这里没有处理 block=0的情况,block==0时会阻塞;
public static RedisXReadCommand XRead(long count, long block, params (string key, string id)[] streams) { var args = new List
(); if (count > 0) args.AddRange(new[] { "COUNT", count.ToString() }); if (block > 0) args.AddRange(new[] { "BLOCK", block.ToString() }); args.Add("STREAMS"); args.AddRange(streams.Select(a => (object)a.key)); args.AddRange(streams.Select(a => (object)a.id)); return new RedisXReadCommand("XREAD", args.ToArray()); }
这里 end/start 的参数内部传反了,目前只有传 end="-",start="+" 才能正确执行,正确的应该是 end="+",start="-" public (string id, string[] items)[] XRevRange(string key, string end, string start, long count = 1);
2881099
commented
1 year ago
建议切换到最新的 FreeRedis
public static RedisXReadCommand XRead(long count, long block, params (string key, string id)[] streams) { var args = new List