sql >> Base de Datos >  >> NoSQL >> Redis

StackExchange TimeoutException al intentar insertar 750 elementos en 2 conjuntos en redis

Lo siguiente pasa bien y reporta 10ms localmente. Me interesaría mucho si pudiera llenar un poco los espacios en blanco para que pueda hacer una prueba representativa que reproduzca el problema. Tenga en cuenta que qu=0, qs=3 me dice que en el momento en que se agota el tiempo de espera, estamos esperando que el servidor redis responda. Obviamente, el ancho de banda local y la latencia serían de interés, pero fundamentalmente, debería funcionar . También me interesaría saber en qué está configurado el tiempo de espera de sincronización.

using System.Diagnostics;
using System.Linq;
using NUnit.Framework;

namespace StackExchange.Redis.Tests.Issues
{
    [TestFixture]
    public class SO22786599 : TestBase
    {
        [Test]
        public void Execute()
        {
            string CurrentIdsSetDbKey = Me() + ".x";
            string CurrentDetailsSetDbKey = Me() + ".y";

            RedisValue[] stringIds = Enumerable.Range(1, 750).Select(i => (RedisValue)(i + " id")).ToArray();
            RedisValue[] stringDetails = Enumerable.Range(1, 750).Select(i => (RedisValue)(i + " detail")).ToArray();

            using (var conn = Create())
            {
                var db = conn.GetDatabase();
                var tran = db.CreateTransaction();

                tran.SetAddAsync(CurrentIdsSetDbKey, stringIds);
                tran.SetAddAsync(CurrentDetailsSetDbKey, stringDetails);

                var watch = Stopwatch.StartNew();
                var isOperationSuccessful = tran.Execute();
                watch.Stop();
                System.Console.WriteLine("{0}ms", watch.ElapsedMilliseconds);
                Assert.IsTrue(isOperationSuccessful);                
            }
        }
    }
}