Redis en cache pour le SGBDR

Je prévois d'utiliser redis comme cache pour une database déjà existante (MS SQL) .J'aimerais utiliser datatables de redis pour les mettre en face-plan. Je vais devoir gérer une énorme quantité de données autour de 100Go en une journée. Je vais surtout avoir une table qui contient une valeur de time et une valeur de countur (entre 10 et 100 colonnes). Comment redis effectuer si je dois faire l'agrégation sur ces beaucoup de données basées sur l'heure, le jour etc …. (c'est-à-dire basé sur la colonne de time.) Redis est la bonne manière de le faire ou existe-t-il une alternative? Je ne sais pas comment nosql est bon quand il s'agit d'agrégation par rapport à SGBDR. Et comment MonogoDB ferait-il dans un tel scénario?

Merci

Commencez avec 3 instances redis, chacune avec 64 Go de RAM, soit 192 Go de memory, ce qui est plus que suffisant pour contenir votre set de données et augmenter votre espace de stockage .

Chaque instance Redis sera un maître, de sorte que vos données seront réparties entre les instances de manière égale. Vous aurez besoin de partitionner les instances de la couche application en utilisant un algorithm de hachage simple, par exemple …

(from your application layer) shardKey = "redis" + getShardKey( cacheKey); redisConnection = getRedisConnectionByShardKey( shardKey); //do work with redisConnection here 

La fonction getShardKey(ssortingng) prend le cacheKey, le convertit en entier, puis le modifie selon le nombre d'instances redis, returnnant 0, 1 ou 2. Configurez un pool de connections pour chaque instance redis, donnez-leur un nom comme redis0 , redis1 , etc., après avoir appelé la fonction de hachage, utilisez la key shard pour get une connection pour l'instance redis cible. Une fois que vous avez datatables dont vous avez besoin, effectuez l'agrégation dans votre couche d'application.

C'est une approche simple; il dissortingbue datatables de manière égale parmi les instances redis (plus ou less), et évite de tout bourrer dans une seule instance redis. Redis est mono-thread, donc si vous faites beaucoup d'E / S vous serez lié par la rapidité avec laquelle votre CPU peut répondre aux requests; l'utilisation de plusieurs instances dissortingbue ce chargement.

Cette solution tombe en panne lorsque votre set de données dépasse 180 Go. Si vous ajoutez une autre instance redis pour accueillir un set de données plus important, la fonction de hachage doit être mise à jour pour refléter modulo 4, et non pas 3, et vous devrez déplacer la plupart de vos données. vous êtes sûr à 100% que l'set de données restra en dessous de 150Go.