Introduction à Redis, le serveur à tout faire

Redis_Logo

 

Redis n’est pas une base NoSQL.

Enfin si, un peu mais pas tout à fait. Redis se situe à peu près à mi-chemin entre un serveur de cache, une base NoSQL, un serveur de dictionnaire.

Il a l’avantage d’être très rapide car stocké en RAM, et persistant car copié sur disque régulièrement.

 

Environnement de test

 

Un container est là pour vous :

docker run -it adminrezo/redis /bin/bash
root@xxxxxx:/# service redis-server start
root@xxxxxx:/# redis-cli
redis 127.0.0.1:6379>

 

Les commandes qui suivent peuvent être testée par redis-cli.

 

Chaînes (String) :

 

Les chaînes (enregistrements de type clé-valeur) sont très simples à CRUDer (CRUD = Create Read Update Delete).

Pour plus d’info sur les chaînes : help @string

# CREATE
set prenom "jean-patrice"
# READ
get prenom
"jean-patrice"
# UPDATE
set prenom "jean-patrice benjamin"
get prenom
"jean-patrice benjamin"
# DELETE
del prenom
get prenom
(nil)

 

Vu comme ça, ça ressemble à un tableau associatif sauf que c’est accessible en réseau donc d’une appli à une autre.

Comme je le disais les données sont en RAM mais elles sont écrites régulièrement en dur.

Tester donc l’arrêt et le redémarrage du container, les données doivent rester en place.

 

Listes :

 

Les listes Redis sont des collections de chaînes de caractères triées par ordre d’insertion.

Pour plus d’info sur les listes : help @list

# CREATE
rpush users "toto"
rpush users "titi"
rpush users "tata"
# READ
llen users
3
lrange users 0 2
1) "toto"
2) "titi"
3) "tata"
# ou quelle que soit la longueur :
lrange users 0 -1
1) "toto"
2) "titi"
3) "tata"
# UPDATE
# remplacer la valeur "titi" par "tutu"
lset users 1 "tutu"
lrange users 1 1
1) "tutu"
# DELETE
# Supprimer une valeur
lrem users 2 tutu
lrange users 0 -1
1) "toto"
2) "tata"
# Supprimer l'enregistrement
del users
get users
(nil)

 

Sets :

 

Les sets sont des collections de chaînes de caractères non triées.

Pour plus d’info sur les sets : help @set

# CREATE
sadd users "toto"
sadd users "titi"
sadd users "tata"
# READ
# Toutes les entrées du set
smembers users
1) "tata"
2) "titi"
3) "toto"
# une entrée aléatoire
srandmember users
1) "titi"
# DELETE
# Supprimer une valeur
srem users titi
smembers users
1) "toto"
2) "tata"
# Supprimer l'enregistrement
del config
get config
(nil)

 

HMAP

 

Les HMAPs sont des ensembles de couples clé-valeurs.

Pour plus d’info sur les hmaps : help @hmap

# CREATE
hmset config vcpu 2 ram 512M cdrom yes workingdir /tmp/work 
# READ
# Toutes les entrées du hmap
hgetall config
1) "vcpu"
2) "2"
3) "ram"
4) "512M"
5) "cdrom"
6) "yes"
# une entrée
hget config ram
1) "512M"
# DELETE
# Supprimer une clé-valeur
hdel config vcpu
hgetall config
1) "ram"
2) "512M"
3) "cdrom"
4) "yes"
# Supprimer l'enregistrement
del config
get config
(nil)

 

Sur le même sujet :