public SortedSetSerialization(ILogger <SortedSetSerialization <T> > log, IRedisLink link, IMainIndexManager mainIndexManager) : base(log, link, mainIndexManager) { this.link = link ?? throw new ArgumentNullException(nameof(link)); this.mainIndexManager = mainIndexManager ?? throw new ArgumentNullException(nameof(mainIndexManager)); this.log = log ?? throw new ArgumentNullException(nameof(log)); }
public RedisDocumentCacheFactory(ILoggerFactory factory, IRedisLink redis, LocalDocumentsCache local, IJsonSerializer serializer) { this.redis = redis ?? throw new ArgumentNullException(nameof(redis)); this.local = local ?? throw new ArgumentNullException(nameof(local)); this.serializer = serializer ?? throw new ArgumentNullException(nameof(serializer)); this.factory = factory ?? throw new ArgumentNullException(nameof(factory)); }
public RedisClient(ILogger <RedisClient> logger, IRedisLink link, IMainIndexManager mainIndexManager, IDatabaseAsync database = null) { this.link = link ?? throw new ArgumentNullException(nameof(link)); this.mainIndexManager = mainIndexManager ?? throw new ArgumentNullException(nameof(mainIndexManager)); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); this.database = database; }
public IndexManagerFactory(ILoggerFactory loggerFactory, IRedisLink link) { this.link = link ?? throw new ArgumentNullException(nameof(link)); this.loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory)); table[setName] = new SetIndexManager(loggerFactory.CreateLogger <SetIndexManager>(), link); table[listName] = new ListIndexManager(loggerFactory.CreateLogger <ListIndexManager>(), link); table[hashName] = new HashIndexManager(loggerFactory.CreateLogger <HashIndexManager>(), link); }
public ObjectListSerialization(ILogger <ObjectListSerialization <T> > logger, IRedisLink link, IObjectSerialization <T> objectSerialization, IRedisSetList redisSetList, IMainIndexManager mainIndexManager) { this.objectSerialization = objectSerialization ?? throw new ArgumentNullException(nameof(objectSerialization)); this.redisSetList = redisSetList ?? throw new ArgumentNullException(nameof(redisSetList)); this.mainIndexManager = mainIndexManager ?? throw new ArgumentNullException(nameof(mainIndexManager)); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); this.link = link ?? throw new ArgumentNullException(nameof(link)); }
public SingleItemSerialization(ILogger <SingleItemSerialization <T> > log, IRedisLink link, IObjectSerialization <T> objectSerialization, IMainIndexManager mainIndexManager) : base(log, link, mainIndexManager) { this.objectSerialization = objectSerialization ?? throw new ArgumentNullException(nameof(objectSerialization)); this.mainIndexManager = mainIndexManager ?? throw new ArgumentNullException(nameof(mainIndexManager)); this.log = log ?? throw new ArgumentNullException(nameof(log)); this.link = link ?? throw new ArgumentNullException(nameof(link)); }
public RedisDocumentCache(ILogger <RedisDocumentCache> log, POSTaggerType tagger, IRedisLink manager, LocalDocumentsCache local, IJsonSerializer serializer) { this.tagger = tagger; this.manager = manager ?? throw new ArgumentNullException(nameof(manager)); this.local = local ?? throw new ArgumentNullException(nameof(local)); this.log = log ?? throw new ArgumentNullException(nameof(log)); manager.PersistencyRegistration.RegisterObjectHashSingle <LightDocument>(new JsonDataSerializer(serializer)); }
public async Task Setup() { redisInstance = new RedisInside.Redis(i => i.Port(6666).LogTo(item => Global.Logger.LogDebug(item))); var config = XDocument.Load(Path.Combine(TestContext.CurrentContext.TestDirectory, @"Config\redis.config")).XmlDeserialize <RedisConfiguration>(); config.ServiceName = "IT"; redis = await new ModuleHelper(config).Provider.GetService <IAsyncServiceFactory <IRedisLink> >().GetService(true); redis.Multiplexer.Flush(); key = new ObjectKey("Test", "Key"); }
public AmazonRepository(ILogger <AmazonRepository> logger, IRedisLink manager) { this.manager = manager ?? throw new ArgumentNullException(nameof(manager)); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); manager.PersistencyRegistration.RegisterHashsetSingle <AmazonReviewData>(); manager.PersistencyRegistration.RegisterHashsetSingle <UserData>(); manager.PersistencyRegistration.RegisterHashsetSingle <ProductData>(); // not sure why it was added originally as object but now we have to stick due to compatibility issue manager.PersistencyRegistration.RegisterObjectHashSingle <AmazonTextData>(new FlatProtoDataSerializer(true, MemoryStreamInstances.MemoryStream), true); }
public RedisTransaction(ILoggerFactory loggerFactory, IRedisLink link, ITransaction transaction, IMainIndexManager indexManager) { if (loggerFactory == null) { throw new ArgumentNullException(nameof(loggerFactory)); } this.Transaction = transaction ?? throw new ArgumentNullException(nameof(transaction)); this.link = link ?? throw new ArgumentNullException(nameof(link)); log = loggerFactory.CreateLogger <RedisTransaction>(); Client = new RedisClient(loggerFactory.CreateLogger <RedisClient>(), link, indexManager, transaction); }
public RedisDocumentCache(ILogger <RedisDocumentCache> log, POSTaggerType tagger, IRedisLink manager, LocalDocumentsCache local) { this.tagger = tagger; this.manager = manager ?? throw new ArgumentNullException(nameof(manager)); this.local = local ?? throw new ArgumentNullException(nameof(local)); this.log = log ?? throw new ArgumentNullException(nameof(log)); if (!manager.HasDefinition <LightDocument>()) { manager.RegisterNormalized <LightDocument>(new XmlDataSerializer()).IsSingleInstance = true; } }
public ListSerialization(ILogger <ListSerialization <T> > logger, IRedisLink link, IRedisSetList redisSetList, IMainIndexManager indexManager, IDataSerializer serializer) : base(logger, link, indexManager) { this.link = link ?? throw new ArgumentNullException(nameof(link)); this.redisSetList = redisSetList ?? throw new ArgumentNullException(nameof(redisSetList)); this.serializer = serializer ?? throw new ArgumentNullException(nameof(serializer)); log = logger ?? throw new ArgumentNullException(nameof(logger)); }
public void Setup() { local = new LocalDocumentsCache(ApplicationLogging.LoggerFactory.CreateLogger <LocalDocumentsCache>(), new MemoryCache(new MemoryCacheOptions())); redis = new RedisInside.Redis(i => i.Port(6666).LogTo(item => log.LogDebug(item))); IServiceCollection service = new ServiceCollection(); service.RegisterModule(new RedisServerModule(new RedisConfiguration("localhost", 6666) { ServiceName = "Test" })); link = service.BuildServiceProvider().GetService <IRedisLink>(); instance = new RedisDocumentCache(new NullLogger <RedisDocumentCache>(), POSTaggerType.Simple, link, local); }
public RedisPersistency(ILogger <RedisPersistency> log, IRedisLink redis, IMemoryCache cache) { if (redis == null) { throw new ArgumentNullException(nameof(redis)); } this.cache = cache ?? throw new ArgumentNullException(nameof(cache)); this.log = log ?? throw new ArgumentNullException(nameof(log)); redis.RegisterHashType <TweetData>().IsSingleInstance = true; redis.RegisterHashType <TweetUser>().IsSingleInstance = true; this.redis = redis; }
public static RedisKey GetIndexKey(this IRedisLink link, IIndexKey index) { if (link == null) { throw new ArgumentNullException(nameof(link)); } if (index == null) { throw new ArgumentNullException(nameof(index)); } return(string.IsNullOrEmpty(index.RepositoryKey) ? link.GetKey(index.Key) : link.GetKey($"{index.RepositoryKey}:{index.Key}")); }
public static RedisKey GetKey(this IRedisLink link, string key) { if (link == null) { throw new ArgumentNullException(nameof(link)); } if (key == null) { throw new ArgumentNullException(nameof(key)); } return(link.Name + ":" + key); }
public static RedisKey GetKey(this IRedisLink link, IDataKey key) { if (link == null) { throw new ArgumentNullException(nameof(link)); } if (key == null) { throw new ArgumentNullException(nameof(key)); } return(GetKey(link, key.FullKey)); }
public static IObservable <HashEntry> GetHash(this IRedisLink link, string key) { return(Observable.Create <HashEntry>( obs => { IEnumerable <HashEntry> hashEntries = link.Database.HashScan(key); foreach (var entry in hashEntries) { obs.OnNext(entry); } obs.OnCompleted(); return Disposable.Empty; })); }
public static async Task Reindex(this IRedisLink link, ILoggerFactory factory, IDataKey key) { if (link == null) { throw new ArgumentNullException(nameof(link)); } if (key == null) { throw new ArgumentNullException(nameof(key)); } var log = factory.CreateLogger("IndexManagerExtension"); log.LogDebug("Redindex {0}", key); var manager = new IndexManagerFactory(factory, link); var tasks = new List <Task>(); var total = 0; foreach (var index in key.Indexes) { var indexManagers = manager.Create(index); tasks.Add(indexManagers.Reset(link.Database, index)); await Task.WhenAll(tasks.ToArray()).ConfigureAwait(false); var actualKey = (string)link.GetKey(key); var mask = Regex.Replace(actualKey, $"{FieldConstants.Object}:.*", $"{FieldConstants.Object}*", RegexOptions.IgnoreCase); tasks.Clear(); foreach (var redisKey in link.Multiplexer.GetKeys(mask)) { total++; var rawId = Regex.Replace(redisKey, $".*:{FieldConstants.Object}:", string.Empty, RegexOptions.IgnoreCase); tasks.Add(indexManagers.AddRawIndex(link.Database, rawId, index)); } } await Task.WhenAll(tasks).ConfigureAwait(false); log.LogDebug("ReIndexed {0} {1}", key, total); }
public static Task DeleteAll(this IRedisLink link, IDatabaseAsync database, IDataKey key) { if (link == null) { throw new ArgumentNullException(nameof(link)); } if (database == null) { throw new ArgumentNullException(nameof(database)); } if (key == null) { throw new ArgumentNullException(nameof(key)); } var actualKey = link.GetKey(key); return(database.KeyDeleteAsync(actualKey)); }
public static Task SetExpire(this IRedisLink link, IDatabaseAsync database, IDataKey key, DateTime dateTime) { if (link == null) { throw new ArgumentNullException(nameof(link)); } if (database == null) { throw new ArgumentNullException(nameof(database)); } if (key == null) { throw new ArgumentNullException(nameof(key)); } var actualKey = link.GetKey(key); return(database.KeyExpireAsync(actualKey, dateTime)); }
public static Task <bool> ContainsRecord(this IRedisLink link, IDatabaseAsync database, IDataKey key) { if (link == null) { throw new ArgumentNullException(nameof(link)); } if (database == null) { throw new ArgumentNullException(nameof(database)); } if (key == null) { throw new ArgumentNullException(nameof(key)); } var actualKey = link.GetKey(key); return(database.KeyExistsAsync(actualKey)); }
public void Setup() { service = new RedisInside.Redis(config => config.Port(6666)); var collection = new ServiceCollection(); collection.AddLogging(builder => builder.AddConsole()); collection.RegisterModule(new RedisModule(new NullLogger <RedisModule>(), new RedisConfiguration("localhost", 6666))); collection.RegisterModule <CommonModule>(); var provider = collection.BuildServiceProvider(); link = provider.GetService <IRedisLink>(); link.Open(); instance = new AmazonRepository(new NullLogger <AmazonRepository>(), link); review = AmazonReview.Construct( new ProductData { Id = "Product1" }, new UserData { Id = "User1" }, new AmazonReviewData { Id = "One", UserId = "User1", ProductId = "Product1" }, new AmazonTextData { Text = "Test" }); review.User.Name = "Andrius"; review.Product.Name = "Nokia"; review.Product.Category = ProductCategory.Electronics; review.Data.Date = new DateTime(2012, 01, 01); review.Product.Price = 10; var task1 = instance.Save(review); review.Data.Id = "Two"; review = AmazonReview.Construct(review.Product, review.User, review.Data, review.TextData); var task2 = instance.Save(review); Task.WaitAll(task1, task2); }
public async Task Setup() { redisOne = new RedisInside.Redis(i => i.LogTo(item => Global.Logger.LogDebug(item)).WithPersistence()); redisTwo = new RedisInside.Redis(i => i.LogTo(item => Global.Logger.LogDebug(item)).WithPersistence()); await Task.Delay(500).ConfigureAwait(false); var config = XDocument.Load(Path.Combine(TestContext.CurrentContext.TestDirectory, @"Config\redis.config")).XmlDeserialize <RedisConfiguration>(); config.Endpoints[0].Port = ((IPEndPoint)redisOne.Endpoint).Port; linkOne = await new ModuleHelper(config).Provider.GetService <IAsyncServiceFactory <IRedisLink> >().GetService(true); config = XDocument.Load(Path.Combine(TestContext.CurrentContext.TestDirectory, @"Config\redis.config")).XmlDeserialize <RedisConfiguration>(); config.Endpoints[0].Port = ((IPEndPoint)redisTwo.Endpoint).Port; var provider = new ModuleHelper(config).Provider; linkTwo = await provider.GetService <IAsyncServiceFactory <IRedisLink> >().GetService(true); factory = provider.GetService <IReplicationFactory>(); linkOne.Multiplexer.Flush(); linkTwo.Multiplexer.Flush(); var data = linkOne.Database.ListRange(key); Assert.AreEqual(0, data.Length); // adding new record linkOne.Database.ListLeftPush(key, "Test"); data = linkOne.Database.ListRange(key); Assert.AreEqual(1, data.Length); // checking nothing in another database data = linkTwo.Database.ListRange(key); Assert.AreEqual(0, data.Length); }
public AnalysedDocRepository(IRedisLink manager) { this.manager = manager ?? throw new ArgumentNullException(nameof(manager)); manager.PersistencyRegistration.RegisterHashsetSingle(new DictionarySerializer(new[] { "No" })); }
public IdentityRepository(ILogger <EntityRepository <Identity> > log, IRedisLink redis) : base(log, redis, "Identity") { }
public IdentityRepositoryEx(ILogger <IdentityRepository> log, IRedisLink redis, IJsonSerializer serializer) : base(log, redis, "Identity", register: handler => handler.RegisterObjectHashSingle <Identity>(new JsonDataSerializer(serializer))) { }
public PersistencyRegistrationHandler(ILoggerFactory loggerFactory, IRedisLink link) { this.loggerFactory = loggerFactory; this.link = link; }
public RedisList(ILogger <RedisList> logger, IRedisLink link, IMainIndexManager mainIndexManager) { this.link = link ?? throw new ArgumentNullException(nameof(link)); this.mainIndexManager = mainIndexManager ?? throw new ArgumentNullException(nameof(mainIndexManager)); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
public SetIndexManager(ILogger <SetIndexManager> logger, IRedisLink link) : base(logger, link) { }