Logiciel de stockage des données : Comment profiter au maximum du potentiel de Redis ?

Logiciel de stockage des données : Comment profiter au maximum du potentiel de Redis ?

L’un de nos programmeurs a dû travailler avec Redis, logiciel de stockage des données qui n’emploie pas le format classique de tableaux et de listes, mais qui offre la possibilité d’utiliser et de stocker des données de tout type, pour y accéder avec une clé.

Redis, en jargon technique, est une base clefs-valeur, ayant un système de gestion de listes des données, des collections (qui ne permettent pas de doublons), des collections ordonnées (qui permettent de qualifier certaine donnée et d’employer cette qualification afin de réaliser d’autres opérations) et même des structures simples appelées Hashes, parmi d’autres.

Tout d’abord, ce que l’on découvre au moment de commencer à travailler avec ce type de bases de donnés, qui ne sont pas traditionnellement structurées, c’est le fait que le NOM des clés est fondamentale ; c’est aussi très important de savoir quelles sont les opérations d’haute vitesse, c’est-à- dire, O(1). Ce paramètre est connu comme Complexité en Temps, et chacun des commandes Redis indique ce facteur, par exemple, GET ou SET sont O(1), pendant que SINTER (qui permet de créer une intersection entre deux collections) est O(N*M), où N est la quantité d’éléments de la collection plus petite et M est la quantité de collections concernées par l’opération. En conséquence, il est possible d’évaluer combien un logiciel employant Redis est bien conçu, par l’analyse de la complexité en temps, en désirant O(1) pour le 100%.

Autre fonctionnalité très utile de Redis est la possibilité de donner une date d’échéance à une clé déterminée. Par exemple, il serait possible de créer un logiciel pour la gestion de sessions en utilisant le nom de la clé SESSION_{Userld}, qui va stocker la valeur d’ID de la session. En plus, il serait aussi possible de déterminer que cette clé expire dans les 10 minutes suivant. Ce concept de volatilité est bien mis en place sur Redis il est possible de commencer à l’étudier ici.

Notre programmeur, Arturo, il a dû mettre en place l’expiration, pas au niveau de clés, mais au niveau de données. Aujourd’hui, nous volons partager avec vous certains connaissances sur le code mis en place, compte tenu qu’il n’y a pas d’exemples sur internet pour d’autres langages et rien de tout pour Python. Le code est une catégorie dénommée DeadSet (dû á la fonctionnalité mis en place et à l’expiration d’items en catégories Redis, mais aussi au nom d’un joueur professionnel du jeu Diable 3, de la compagnie Blizzard, dont notre programmeur est fan). Voici un exemple d’emploi :

import redis
import datetime
from deadset import DeadSet

r = redis.StrictRedis(...)
expDate = datetime.timedelta(days=7)
dsetkey = "DEAD_IN_A_WEEK"

datakey = "THIS_HOLDS_DATA"
data = {"a": 4, "b": 2}
dset = DeadSet(keyname=dsetkey,
               default_expire=expDate,
               rdb=r)
dset.add_expiring_item(itemId=datakey, itemdata=data)

Dans l’exemple, on travaille avec la clé DEAD_IN_A_WEEK, à laquelle on ajoute un item avec un nom « THIS_HOLDS_DATA », qui deviendra à sa fois une clé type Redis Hash, qui stockera l’information de la variable data (a=4, b=2). L’item, aussi bien que la clé, ils vont expirer automatiquement dans le sept jours, grâce au paramétrage d’un python timedelta. Cela signifie que nous pouvons transformer des opérations O(N), qui sont onéreuses en termes de temps, en opérations immédiates O(1), avec la valeur ajoutée d’une expiration automatique afin d’optimiser notre logiciel. Vous pouvez accéder au cours DeadSet sur notre répertoire git: ce lien.

Les fraudes sur les systèmes de paiement en ligne: tes données personnelles valent beaucoup plus de ce que tu en penses

Les fraudes sur les systèmes de paiement en ligne: tes données personnelles valent beaucoup plus de ce que tu en penses

Sésame, ouvre-toi ! Les usages de la biométrie appliquée à la sécurité informatique

Sésame, ouvre-toi ! Les usages de la biométrie appliquée à la sécurité informatique