public RedisIndexedStore( IRedisDatabaseConnector connection, ISerializer serializer, CollectionWithIndexesSettings <TValue> settings) : base( connection, serializer, settings) { var indexFactory = new IndexFactory <TValue>(CollectionRootName, Expiry, serializer, MasterKeyExtractor); _indexManagers = settings.Indexes .Where(index => index.WithPayload) .Select( indexDefinition => indexFactory.CreatePayloadIndex(indexDefinition.Unique, indexDefinition.Extractor, indexDefinition.Name)) .Concat( settings.Indexes .Where(index => !index.WithPayload) .Select( indexDefinition => indexFactory.CreateKeyedIndex(indexDefinition.Unique, indexDefinition.Extractor, key => Get(key), indexDefinition.Name)) //todo USE THE ASYNC API TO PASS Get(key) ); }
protected RedisExpiryMessageSubscriber( IRedisDatabaseConnector connection, string collectionName ) { var db = connection.GetConnectedDatabase(); _subscriber = db.Multiplexer.GetSubscriber(); _keySpaceChannel = $"__keyspace@{db.Database}__:{collectionName}*"; }
public RedisStore( IRedisDatabaseConnector connection, ISerializer serializer, CollectionSettings <TValue> collectionSettings) { _database = connection.GetConnectedDatabase(); _serializer = serializer; CollectionRootName = (collectionSettings.Name ?? typeof(TValue).Name).ToLowerInvariant(); CollectionMasterName = $"{CollectionRootName}:{CollectionMasterSuffix}"; MasterKeyExtractor = collectionSettings.MasterKeyExtractor; Expiry = collectionSettings.Expiry; }
public RedisDatabaseManager(IRedisDatabaseConnector connector) { _connector = connector; }
public static RedisExpiryMessageSubscriber CreateForCollectionType <TValue>( IRedisDatabaseConnector connection ) { return(new RedisExpiryMessageSubscriber(connection, typeof(TValue).Name.ToLowerInvariant())); }