1. Introduction
Redis est un système de stockage de valeurs de clé en mémoire open source (sous licence BSD) qui peut être utilisé comme base de données, cache et middleware de message.
2. Opération sur la clé
Tout d'abord, vous devez établir une connexion. Jedis Jedis = new Jedis ("127.0.0.1", 6379), puis vous pouvez faire fonctionner la chaîne, set, zset et hash.
// Tester sur Key Public void KeyTest () {System.out.println (Jedis.Flushdb ()); // Clear Data System.out.println (Jedis.echo ("Hello")); // imprime Hellosystem.out.println (Jedis.exists ("Key1"); // juge les principales existces avec jedis.set. "valeurs1"); jedis.set ("key2", "valeurs2"); System.out.println (Jedis.exists ("key1")); // juge si la clé existe avec String RandomKey = jedis.randomkey (); // sélectionnez un Keysystem.out.out.print ("Key1", 60); // RandomKey); System.out.println (Jedis.pttl ("key1")); // Temps de survie restant // Supprimer le temps d'expiration de la clé Jedis.persiste ("key1"); // Obtenez le type de clé, "String", "List", "Set" "Aucun" nul signifie que la clé n'existe pas System.out.println ("type est:" + jedis.type (") key // exporter la valeur de la clés de la chaîne valeur = jedis.get ("key1"); system.out.println (valeur); // renommer la clé jedis.renamenx ("key1", "keytest"); system.out.println ("key1")); // déterminer s'il y a System.out.println ("keytest"); // déterminer s'il y a System.println (KeyTest "); // déterminer si c'est le System. Clés * Faites correspondre toutes les touches dans la base de données. // Keys h? Llo correspond bonjour, hallo et hxllo, etc. // keys h * llo matchs hllo et heeeeeello, etc. // clés h [ae] llo matchs bonjour et hallo, mais pas hilllo. // Les symboles spéciaux sont séparés par /. Set <string> set = jedis.keys ("k *"); // Obtenez toutes les méthodes de clés de clé pertinentes Systems.out.println (set); jedis.del ("key1"); // supprimer la clé de la méthode del System.out.println (Jedis.exists ("key1"));}3. Type de données de chaîne
Réglez Mystr "Hello World!" // Définissez le type de chaîne Get mystr // Lisez le type de chaîne pour effectuer des opérations numériques sur la chaîne 127.0.0.1:6379> Définissez Mynum "2" OK127.0.0.1: 6379> Get Mynum "2" 127.0.0.1:6379> AUCH
Le code d'opération Java est:
// Tester sur la chaîne Opération publique void stringTest () {Jedis.set ("Hello", "Hello"); // SetSystem.out.println (Jedis.get ("Hello")); // Get // Utiliser l'annexe pour ajouter Jedis.APPEND ("Hello", "World"); // Annexe Annex System.out.Println (Jedis.get ("Hello); Jedis.set ("Hello", "123"); System.out.println (Jedis.get ("Hello")); // Set Expiration Time Jedis.SetEx ("Hello2", 2, "World2"); System.out.println (Jedis.get ("Hello2")); Try {Thread.Sleep (3000);} Catch (InterruptedException e) {e.printstackTrace ();} System.out.println (Jedis.get ("Hello2")); // Ajouter plusieurs paires de valeurs clés à la fois à Jedis.mset ("a", "1", "b", "2"); // obtient le valonelist de a et b Valus = jedis.mget ("a", "b"); System.out.print (valus); Suppression par lots de Jedis.del ("A", "B"); System.out.println (Jedis.exists ("A")); System.out.println (Jedis.Exists ("B"));}4. Répertorier le type de données
Les listes de Redis ne sont pas des tableaux dans l'implémentation sous-jacente, mais des listes liées.
Une série d'opérations: RPUSH, LPUSH, LLEN, LRange, LPOP et RPOP.
Nous pouvons utiliser LPUSH pour insérer un nouvel élément sur le côté gauche des listes, utiliser RPUSH pour insérer un nouvel élément sur le côté droit des listes et utiliser la commande LRange pour spécifier une plage de listes pour extraire des éléments.
// Créer une nouvelle liste appelée MyList, et insérer l'élément "1" 127.0.0.1:6379> lpush myList "1" // Renvoie le nombre d'éléments dans le MyList (entier) 1 // Insérez l'élément "2" 127.0.0.1:6379> RPUSH MyList "2" (Integer) 2 // INSERT Element "0" 127.0.0.0.1 lpush myList "0" (entier) 3 // Répertoriez les éléments du numéro 0 au numéro 1 dans MyList 127.0.0.1:6379> LRange MyList 0 11) "0" 2) "1" // Liste le premier élément de MyList de Number 0 au dernier 127.0.0.1:6379> Lrange MyList 0 -11) "0" 2) "1" 3) "2"
Le code d'opération Java est:
public void listTest () {string key = "myList"; jedis.del (key); // supprimer le précédent // ajouter un élément à la file d'attente jedis.rpush (key, "aaaa"); jedis.rpush (key, "bbbb"); jedis.rpush (key, "cccc"); jedis.rpush (key, "ccc" //itythy System.out.println ("Lenth:" + Jedis.Llen (Key)); // imprimez la file d'attente, à partir de l'index 0, au premier (tous les éléments) System.out.println ("tous les éléments:" + Jedis.lRange (Key, 0, -1)); // Elements with Index 1 System.out.println ("Index of 1:" + jeded.Lind (1)) La valeur d'un élément dans la file d'attente et une erreur sera renvoyée lorsque l'index dépasse la plage. Jedis.lset (Key, 1, "AA22"); System.out.println ("Index de 1:" + Jedis.Lindex (Key, 1)); // ENQUEUe un élément du côté droit de la file d'attente Jedis.rpush (Key, "-2", "-1"); // enter "-1"); // ENQUEUe un élément du côté gauche de la file d'attente jedis.rpush (clé, "deuxième élément", "premier élément"); // premier second // élément, puis d'abord // élémentf entre dans la file d'attente System.out.println ("tous les éléments:" + Jedis.lrange (Key, 0, -1)); // DeQueues un élément de la droite du côté de la queue de la queue de la queue de la queue de la queue de la queue de la queue de la queue de la ceitu System.out.println (Jedis.rpop (Key)); // désactive un élément du côté gauche de la file d'attente System.out.println (Jedis.lpop (clé)); System.out.println ("Tous les éléments:" + Jedis.lRange (Key, 0, -1)); // Count> 0: supprime un élément avec une valeur du début à la fin, et le nombre est le nombre de supprimés. // Count <0: supprimez l'élément avec une valeur de l'extrémité à la tête, et le nombre est le nombre de supprimés. // count = 0: supprime tous les éléments avec une valeur. Jedis.lrem (Key, 1, "CCCC"); System.out.println ("Tous les éléments:" + Jedis.lRange (Key, 0, -1)); // c'est-à-dire que l'élément le plus à droite sera également inclus. Si le démarrage est plus grand que l'indice de queue de la liste, une liste vide sera retournée. // Si l'arrêt est plus grand que la queue réelle de la liste, Redis le traitera comme l'indice du dernier élément. System.out.println (Jedis.lRange (Key, 0, 2)); System.out.println ("Tous les éléments:" + Jedis.lrange (Key, 0, -1)); // Supprimer des éléments en dehors de l'intervalle System.out.println (Jedis.ltrim (Key, 0, 2)); jedis.lrange (clé, 0, -1));}5. Type de définition
L'ensemble de Redis est un ensemble non ordonné, et les éléments de l'ensemble n'ont pas d'ordre.
Une série d'opérations: SADD, SREM, SISISMEME, SMEMBRES ET SUNION.
Les opérations liées à l'ensemble sont également riches, comme l'ajout de nouveaux éléments, la suppression des éléments existants, l'obtention d'intersections, la prise d'un syndicat, l'obtention des ensembles de différence, etc.
// Ajouter un nouvel élément à la collection MySet "One" 127.0.0.1:6379> SADDD MYSET "ONE" (entier) 1127.0.0.1:6379> Dans la collection MySet, Retour 1 signifie 127.0.0.1:6379> SISISME MYSET "ONE" (INTEGER) 1 // Term Si l'élément 3 est dans la collection MySet, Retour 0 signifie n'existe pas 127.0.0.1:6379> Sissem Myset "Three" (INTER) 0 // Créer un nouveau jeu YourSet127.0.0.0.1: 6379 "1" (entier) 1127.0.0.1:6379> sadd yourset "2" (entier) 1127.0.0.1:6379> Smembres yourset1) "1" 2) "2" // Créer une union de deux ensembles127.0.0.1: 6379> Sunion Myset yourset 1) "1" 2) "One" 3) "4)
Code de fonctionnement Java:
public void setTest() {// Clear the data System.out.println(jedis.flushDB());String key = "myset1";String key2 = "myset2";// Add elements to the collection jedis.sadd(key, "aaa", "bbb", "ccc");jedis.sadd(key2, "bbb", "ccc", "DDD"); // Obtenez le nombre d'éléments dans le System de collection.out.println (Jedis.scard (Key)); // le nombre de nombres de l'ensemble // obtient l'intersection de deux ensembles et le stockent dans un résultat clé Jedis.sinterStore ("Destination", Key, Key2); System.out.println (Jedis.Smobers ("Destination"); Stockez-le dans un ensemble de résultats clé Jedis.SunionStore ("Destination", Key, Key2); System.out.println (Jedis.Smembers ("Destination")); // Dans l'ensemble Key1, le SET KEY2 n'a pas d'éléments et de stores dans un ensemble de résultats clés Jedis.Sdiffstore ("Destination", Key, Key, Key, Key, Key, Key, Key, Key, Key, Key, Key, Key, Key2); System.out.println (Jedis.smembers ("Destination")); // déterminer qu'un élément est membre d'un système de collecte.out.println (Jedis.sismember (Key, "aaa")); // Obtenez un élément de la collection Key System.out.println (Jedis.Srandmember (Key)); // aaa se déplace de la clé pour Key2. Jedis.smove (key, key2, "aaa"); System.out.println (jedis.smembers (key)); // obtenez l'élément System.out.println (jedis.smembers (key2)); // delete et obtenez les éléments dans un système de collecte.out.println (Jedis.spop (Key Jedis.srem (key2, "ccc", "ddd"); System.out.println (jedis.smembers (key2));}6. Type d'ensembles triés
Nous appelons tous l'ensemble ordonné dans redis zsets
// Ajouter un ensemble commandé MyZset et ajouter un élément baidu.com, et le numéro de séquence qui lui est donné est le 1127.0.0.1:6379> ZADD MYZSET 1 BAIDU.COM (INTEGER) 1 // Ajouter un élément 360.com à MyZset, et le numéro de séquence qui lui est donné est 3127.0.0.1:6379> ZADD MyZset 3 360.com (Intger) google.com à myzset, et le numéro de séquence qui y est donné est le 2127.0.0.1:6379> ZADD MYZSET 2 Google.com (entier) 1 // Ajouter tous les éléments de MyZset et énumérer leur numéro de séquence en même temps, vous pouvez voir que MyZset est déjà commandé. 127.0.0.
Le code d'opération Java est:
public void zsetTest () {// Clear Data System.out.println (Jedis.flushdb ()); String key = "MySortSet"; map <string, double = ""> scoreMembers = new Hashmap <> (); scoreMembers.put ("aaa", 1001.0); scoreMembers.put ("bbb",,, 1001.0); ScoreMembers. 1002.0); scoreMembers.put ("CCC", 1003.0); // ajouter des données Jedis.zadd (Key, 1004.0, "DDD"); Jedis.zadd (Key, ScoreMembers); // Obtenez le nombre de membres dans un System trié System.out.println (Jedis.zcard (Key)); // L'ensemble ordonné des membres a été rendu sur la plage de spécifiés, 0); // Membre de l'ensemble ordonné, avec 1 indiquant le deuxième membre de l'ensemble ordonné, et ainsi de suite. // indice négatif, avec -1 représentant le dernier membre, -2 représentant le deuxième à dernier ensemble de membres <string> coll = jedis.zRange (Key, 0, -1); System.out.println (coll); // renvoie le jeu de commandes inverse des membres dans la plage spécifiée coll = jedis.zrevRange (Key, 0, -1); System.out.Println (Coll); System.out.println (Jedis.zscore (Key, "BBB")); // Supprimer l'élément System.out.println (Jedis.zrem (Key, "AAA")); System.out.println (Jedis.zRange (Key, 0, -1)); // Nombre de membres, la plage de valeur donnée System.out.trintln (JEDIS. 1002.0, 1003.0));}7. Type de hachage
Hashs stocke le mappage entre la chaîne et la valeur de la chaîne
// Créez un hachage et attribuez une valeur de 127.0.0.1:6379> HMSet User: 001 Username Antirez Mot de passe P1pp0 Age 34OK // Énumérez le contenu du hash127.0.0.1: 6379> HGGETALL User: 0011) "Username" 2) "Antiz" 3) "Mot de passe" 4) "P1pp0" 5) "6)" "34"//Change a value in the hash127.0.0.1:6379> HSET user:001 password 12345(integer) 0//List the content of the hash127.0.0.1:6379> HGETALL user:0011) "username"2) "antirez"3) "password"4) "12345"5) "age"6) "34"
Code de fonctionnement Java:
public void hashtest () {// Clear Data System.out.println (jedis.flushdb ()); string key = "myhash"; map <string, string = ""> hash = new hashmap <> (); hash.put ("aaa", "11"); hash.put ("bbb", "22"); hash.put ("ccc", "33"); Data Jedis.hmset (Key, Hash); Jedis.hset (Key, "DDD", "44"); // Obtenez tous les éléments de Hash (Key Values) System.out.println (Jedis.Hkeys (Key)); // Obtenez la valeur correspondant à toutes les clés dans Hash System.out.println (Jedis.HVALS (KEY)); System.out.println (jedis.hlen (key)); // Obtenez tous les champs et valeurs dans le hachage, et retourne map <string, string = ""> elements = jedis.hgetall (key); System.out.println (elements); // déterminer si la valeur clé donnée existe dans le hash set System.out.println (jedis.hexists (key, "bb")); Valeur correspondant au champ spécifié dans le Hash System.out.println (Jedis.hmget (Key, "AAA", "BBB")); // OBTENE LE VILEUR SPÉCIFIÉ SYSTEM.OUT.PRINTLN (Jedis.hget (Key, "AAA")); // Delete the Specificed Valung System.out.println (Jedis.hdel (Key, "aaa"); System.out.println (Jedis.HGETALL (KEY)); // est le champ de champ dans la clé plus INcmentsystem.out.println (Jedis.Hincrby (Key, "BBB", 100)); System.out.println (Jedis.Hgetall (Key));}8. Transactions
Une transaction fait référence à "une action complète, soit tout exécutée ou rien fait".
Avant de parler des transactions Redis, nous introduirons d'abord quatre instructions Redis, à savoir Multi, Exec, Discard et Watch. Ces quatre instructions constituent la base du traitement des transactions redis.
1.Multi est utilisé pour assembler une transaction;
2.Exec est utilisé pour exécuter une transaction;
3. La défausse est utilisée pour annuler une transaction;
4.Watch est utilisé pour surveiller certaines clés. Une fois ces clés modifiées avant l'exécution de la transaction, l'exécution de la transaction est annulée.
redis> multi // tag la transaction start okredis> incr user_id // plusieurs commandes sont en file d'attente dans la séquence queueDedis> incr user_idqueDedis> incr user_idqueedDis> pingqueuedis> exec // exécuter 1) (entier) 12) (entier) 23) (entier) 34)
Le code d'opération Java est:
public void transactionTest () {transaction t = jedis.multi (); // assemblez une transaction t.set ("bonjour", "monde"); réponse <string> réponse = t.get ("bonjour"); t.zadd ("foo", 1, "Barowitch"); t.zadd ("foo", "barinsky"); t.zadd ("foo", 0, 0, " "barikoviev"); réponse <set <string>> sose = t.zrange ("foo", 0, -1); // renvoie tous les systèmes correspondants et return.out.println (réponse); System.out.println (sose); t.exec (); // note que cette ligne, l'exécution ne peut pas manquer de chaîne idiot = réponse.get (); // réponse () peut obtenir des données de la chaîne = réponse. sose.get (). size (); // sose.get () System.out.println (Foolbar); System.out.println (sose.get ()); System.out.println ("La taille de la collection est:" + Sosesize);}Fonctionnement du pipeline Code Java:
public void TransactionPipeLineTest () {pipeline p = jedis.pipeLined (); // ouvrir un pipeline p.set ("fool", "bar"); p.zadd ("foo", 1, "barowitch"); p.zadd ("foo", 0, "barinsky"); p.zadd ("foo", 0, "Barikoviev"); réponse P.Get ("Fool"); Response <Set <string>> Sose = P.zRange ("Foo", 0, -1); System.out.println (Pipestring); System.out.println (Sose); P.Sync (); // Soumettre System.out.println ("======================================= reverback = sose.get (); System.out.println (Sosesize); System.out.println (revers); System.out.println (pipestring.get ());}Résumer
Ce qui précède est toute l'introduction détaillée de l'opération Java Redis dans cet article, j'espère que cela sera utile à tout le monde. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien à ce site.