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
  1. 这里没有处理 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()); }
  2. 这里 end/start 的参数内部传反了,目前只有传 end="-",start="+" 才能正确执行,正确的应该是 end="+",start="-" public (string id, string[] items)[] XRevRange(string key, string end, string start, long count = 1);
  3. 2881099 commented 1 year ago

    建议切换到最新的 FreeRedis