Esempio n. 1
0
        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}*";
        }
Esempio n. 3
0
        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;
        }
Esempio n. 4
0
 public RedisDatabaseManager(IRedisDatabaseConnector connector)
 {
     _connector = connector;
 }
 public static RedisExpiryMessageSubscriber CreateForCollectionType <TValue>(
     IRedisDatabaseConnector connection
     )
 {
     return(new RedisExpiryMessageSubscriber(connection, typeof(TValue).Name.ToLowerInvariant()));
 }