1. Introducción
Redis es un sistema de almacenamiento de valor de clave de código abierto (licencia BSD) que puede usarse como base de datos, caché y middleware de mensajes.
2. Operación en la clave
Primero, debe establecer una conexión. JEDIS JEDIS = NEW JEDIS ("127.0.0.1", 6379), y luego puede operar String, set, zset y hash.
//Test on key public void keyTest() {System.out.println(jedis.flushDB());//Clear data System.out.println(jedis.echo("hello"));//Print helloSystem.out.println(jedis.exists("foo"));//Judge whether key exists with jedis.set("key1", "valores1"); jedis.set ("key2", "valores2"); System.out.println (jedis.exists ("key1")); // juzga si la clave existe con string aleationKey = jedis.randomkey (); // seleccione un keysystem.out.println ("El nombre de RandomKey es:" + RandomKey); Jedis.EXPIRE ("Key1", 60); // Survival Time Survival Time Time System.out.println (jedis.pttl ("key1")); // tiempo de supervivencia restante // Eliminar el tiempo de vencimiento de la tecla JEDIS.PERSIST ("Key1"); // Obtener el tipo de clave, "String", "List", "Establecer" "Ninguna" Ninguna significa que la clave no exista System.Println ("Type:" + Jedis.type. clave // Exportar el valor del valor de cadena de clave = jedis.get ("key1"); system.out.println (valor); // renombra la clave jedis.renamenx ("key1", "keytest"); system.out.println ("key1"); // determina si hay sistema.out.println ("keytest"); // determinar si está /////////query el coincidencia/////////query el coincidente Claves * Haga coincidir todas las claves en la base de datos. // Keys h? Llo coincide con hola, hallo y hxllo, etc. // claves h*llo coincide hllo y heeeeeello, etc. // teclas h [ae] llo coincide con hola y hallo, pero no hillo. // Los símbolos especiales están separados por /. Set <string> set = jedis.keys ("k*"); // Obtenga todos los métodos de teclas de teclas relevantes System.out.println (set); jedis.del ("key1"); // Eliminar el método de clave del sistema.println (jedis.exists ("key1"));}3. Tipo de datos de cadena
Establezca mystr "¡Hola mundo!" // establecer el tipo de cadena Obtener mystr // lea el tipo de cadena para realizar operaciones numéricas en la cadena 127.0.0.1:6379> Establezca mynum "2" OK127.0.0.1: 6379> Obtén a Mynum "2" 127.0.0.1:6379> Apl Mynum (intento) 3127.0.0.1:6379>
El código de operación de Java es:
//Test on string operation public void stringTest() {jedis.set("hello", "hello");//setSystem.out.println(jedis.get("hello"));//get// Use append to add jedis.append("hello", "world");//Append append method System.out.println(jedis.get("hello"));// Set override the string jedis.set ("hola", "123"); System.out.println (jedis.get ("Hello")); // Establecer tiempo de vencimiento JEDIS.SETEX ("Hello2", 2, "World2"); System.out.println (jedis.get ("Hello2")); intente {hilt.sleep (3000);} Catch (interrupción de Excepción e) {E.PrintStackTrace ();} System.out.println (jedis.get ("hello2")); // Agregue múltiples pares de valores clave a la vez jedis.mset ("a", "1", "b", "2"); // Obtenga el valuelista de A y B valus = jedis.mget ("A", "b"); System.Printl (Valus) (Valus); Deleción por lotes de jedis.del ("a", "b"); system.out.println (jedis.exists ("a")); system.out.println (jedis.exists ("b");}4. Tipo de datos de lista
Las listas en Redis no son matrices en la implementación subyacente, sino listas vinculadas.
Una serie de operaciones: RPUSH, LPUSH, LLEN, LRANGE, LPOP y RPOP.
Podemos usar LPUSH para insertar un nuevo elemento en el lado izquierdo de las listas, usar RPush para insertar un nuevo elemento en el lado derecho de las listas y usar el comando LRange para especificar un rango desde listas para extraer elementos.
// Cree una nueva lista llamada MyList, e inserte el elemento "1" 127.0.0.1:6379> lpush mylist "1" // devuelve el número de elementos en el mylist actual (entero) 1 // elemento inserto "2" 127.0.0.1:6379> Rpush mylist "2" (integer) 2 // elemento "0" 127.0.0.0.1:639 lpush mylist "0"(integer) 3// List elements from number 0 to number 1 in mylist 127.0.0.1:6379> lrange mylist 0 11) "0"2) "1"//list the first element in mylist from number 0 to the last 127.0.0.1:6379> lrange mylist 0 -11) "0"2) "1"3) "2"
El código de operación de Java es:
public void listTest () {string key = "mylist"; jedis.del (key); // eliminar el elemento anterior // Agregar a la cola jedis.rpush (clave, "aaaa"); jedis.rpush (clave, "bbbb"); jedis.rpush (key, "cccc"); jedis.rpush (tecla (tecla "); "cccc"); // longitud de cantidad system.out.println ("lenth:" + jedis.llen (key)); // imprimir cola, comenzando desde el índice 0, a la primera (todos los elementos) system.out.println ("todos los elementos:" + jedis.lrange (clave, 0, -1)); // elemento con índice 1 Índice.out.out.out.100 jedis.lindex (clave, 1)); // Establezca el valor de un elemento en la cola, y se devolverá un error cuando el índice exceda el rango. jedis.lset (clave, 1, "aa22"); system.out.println ("índice de 1:" + jedis.lindex (clave, 1)); // Encarue un elemento desde el lado derecho del lado derecho de la cola Jedis.rpush, "-2", "-1"); // enqueue un elemento derecho de la cola Jedis.rpush, "-2", "-1"); // enqueue un elemento derecho de la cola Jedis.rpush. "-1"); // Enqueue un elemento desde el lado izquierdo de la cola jedis.rpush (clave, "segundo elemento", "primer elemento"); // primer segundo // elemento, luego primero // elemento ingresa el sistema de colas System.out.println (JEDIS.RPOP (KEY)); // Dequeues un elemento desde el lado izquierdo de la cola System.out.println (JEDIS.LPOP (KEY)); System.out.println ("Todos los elementos:" + jedis.lrange (clave, 0, -1)); // cuenta> 0: Elimina un elemento con un valor desde el principio hasta el final, y el recuento es el número de eliminado. // contar <0: elimine el elemento con un valor desde el final hasta la cabeza, y el recuento es el número de eliminado. // recuento = 0: elimina todos los elementos con valor. jedis.lrem (clave, 1, "cccc"); system.out.println ("Todos los elementos:" + jedis.lrange (clave, 0, -1)); // es decir, el elemento más a la derecha también se incluirá. Si el inicio es más grande que el subíndice de cola de la lista, se devolverá una lista vacía. // Si la parada es más grande que la cola real de la lista, Redis lo tratará como el subíndice del último elemento. System.out.println(jedis.lrange(key, 0, 2));System.out.println("all elements: " + jedis.lrange(key, 0, -1));// Delete elements outside the interval System.out.println(jedis.ltrim(key, 0, 2));System.out.println("all elements: " + jedis.lrange (clave, 0, -1));}5. Tipo de configuración
El conjunto de Redis es un conjunto desordenado, y los elementos en el conjunto no tienen orden.
Una serie de operaciones: Sadd, Srem, Sismember, Smembers y Sunion.
Las operaciones relacionadas con el set también son ricas, como agregar nuevos elementos, eliminar elementos existentes, obtener intersecciones, tomar unión, obtener conjuntos de diferencia, etc.
// Agregue un nuevo elemento a la colección myset "one" 127.0.0.1:6379>sadd myset "one" (integer) 1127.0.0.1:6379>sadd myset "dos" (integer) 1 // Haga clic en todos los elementos en la colección myset127.0.0.1: 6379> smembers 1) "one" 2) "2)"////////////////Término En la colección MySet, return 1 medias existen 127.0.0.1:6379>SISmember Myset "One" (Integer) 1 // término Si el elemento 3 está en la colección myset, return 0 medias no existe 127.0.0.1:6379>SISsIsmember myset "tres" (entero) 0 // Cree un nuevo conjunto de settet127.0.0.1: 6379 Myset "tres" (tres "(entero) 0 // Cree un nuevo establecimiento de su conjunto "1"(integer) 1127.0.0.1:6379> sadd yourset "2"(integer) 1127.0.0.1:6379> smembers yourset1) "1"2) "2"//Create a union of two sets127.0.0.1:6379> sunion myset yourset 1) "1"2) "one"3) "2"4) "two"
Código de operación de 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"); // Obtenga el número de elementos en el sistema de recolección.out.println (jedis.scard (clave)); // El recuento de números del conjunto // obtiene la intersección de dos conjuntos y almacena en un conjunto de resultados clave JEDIS.Sinterstore ("Destino", Key, Key2); System.Println (Jedis.smembers ("Destino"); and store it in a key result set jedis.sunionstore("destination", key, key2);System.out.println(jedis.smembers("destination"));// In the key1 set, the key2 set does not have elements and stores them in a key result set jedis.sdiffstore("destination", key, key2); system.out.println (jedis.smembers ("destino"))); // determine que un elemento es un miembro de una colección System.out.println (Jedis.sisMember (Key, "AAA")); // Obtenga un elemento de la colección clave. Jedis.smove (Key, Key2, "AAA"); System.out.println (JEDIS.Smembers (Key)); // Obtenga el elemento System.out.println (JEDIS.Smembers (Key2)); // Eliminar y obtener los elementos en un sistema de recolección.out.println (jedis.spop (clave)); // delete o más elementos de recolección Jedis.srem (Key2, "CCC", "DDD"); System.out.println (JEDIS.Smembers (Key2));}6. Tipo de conjuntos ordenados
Todos llamamos al conjunto ordenado en Redis Zsets
// Agregue un conjunto ordenado myzset y agregue un elemento baidu.com, y el número de secuencia que le dio es 1127.0.0.1:6379> Zadd myzset 1 baidu.com (entero) 1 // agregue un elemento 360.com a myzset, y el número de secuencia dado a él es 3127.0.0.1:6379> Zadd myzs..com 3 360.com (INTER). Google.com a MyZSet, y el número de secuencia que le dio es 2127.0.0.1:6379> Zadd Myzset 2 Google.com (Integer) 1 // Agregue todos los elementos de MyzSet y enumere su número de secuencia al mismo tiempo, puede ver que ya está ordenado MyzSet. 127.0.0.
El código de operación de Java es:
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", 1002.0); scoremembers.put ("ccc", 1003.0); // agregar datos jedis.zadd (clave, 1004.0, "ddd"); jedis.zadd (key, scoremembers); // Obtener el número de miembros en un sistema de conjunto ordenado. indicando el primer miembro del conjunto ordenado, con 1 indicando el segundo miembro del conjunto ordenado, y así sucesivamente. // subíndice negativo, con -1 que representa el último miembro, -2 que representa el segundo a último conjunto del miembro <string> coll = jedis.zRange (clave, 0, -1); system.out.println (coll);// Devuelve el conjunto de orden inverso de los miembros dentro del rango especificado COLL = JEDIS.ZREVVRANGE (KEY, 0, -1); System.out.println (CLOCL); System.out.println (jedis.zscore (clave, "bbb")); // eliminar el elemento sistema.out.println (jedis.zrem (clave, "aaa")); system.out.println (jedis.zrange (key, 0, -1)); // número de miembros dentro del rango de valor dado.out.println (Jedis.zCounts.zCounts.zCons.zcons. 1002.0, 1003.0));}7. Tipo de hash
Hashes almacena el mapeo entre la cadena y el valor de la cadena
// Cree un hash y asigne un valor de 127.0.0.1:6379> Usuario de hmset: 001 UserName Antirez Password P1PP0 Age 34OK // Enumere el contenido del hash127.0.0.1: 6379> HGGELALL User: 0011) "UserName" 2) "Antirez" 3) "PASSINA "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"
Código de operación de Java:
public void hashtest () {// clare 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"); Agregar datos jedis.hmset (clave, hash); jedis.hset (clave, "ddd", "44"); // Obtenga todos los elementos de hash (valores clave) system.out.println (jedis.hkeys (key)); // Obtenga el valor correspondiente a todas las claves en el system.out.println (jedis.hvals (key); System.out.println (jedis.hlen (key)); // Obtenga todos los campos y valores en hash, y return map <string, string = ""> elements = jedis.hgetall (key); system.out.println (elements); // Determinar el valor de clave dado en el set system.out.printlnn (jedis.hexists (key, key, "determinar"); Valor correspondiente al campo especificado en el sistema hash.out.println (jedis.hmget (clave, "aaa", "bbb"))); // obtener el valor especificado system.out.println (jedis.hget (key, "aaa")); // delete el valor especificado.out.println (jedis.hdel (key, "aaa"); System.out.println (jedis.hgetall (key)); // es el campo de campo en la clave más incrementSystem.out.println (jedis.hincrby (clave, "bbb", 100)); system.out.println (jedis.hgetall (clave));}8. Transacciones
Una transacción se refiere a "una acción completa, ya sea ejecutada todo o no hizo nada".
Antes de hablar sobre las transacciones de Redis, primero presentaremos cuatro instrucciones de Redis, a saber, multi, ejecutivo, descarte y reloj. Estas cuatro instrucciones forman la base del procesamiento de la transacción Redis.
1.Multi se usa para ensamblar una transacción;
2.Exec se usa para ejecutar una transacción;
3. El descarte se usa para cancelar una transacción;
4. El reloj se usa para monitorear algunas claves. Una vez que estas claves se cambian antes de ejecutar la transacción, se cancela la ejecución de la transacción.
Redis> Multi // Etiqueta El inicio de la transacción Okredis> aumentando user_id // múltiples comandos se ponen en cola en secuencia queedredis> increment_idquequeedredis> increment_idquequeedredis> pingqueedredis> exec // ejecutar 1) (entero) 12) (entero) 23) (intenso) 34) pong
El código de operación de Java es:
public void transactionTest() {Transaction t = jedis.multi();//Assemble a transaction t.set("hello", "world");Response<string> response = t.get("hello");t.zadd("foo", 1, "barowitch");t.zadd("foo", 0, "barinsky");t.zadd("foo", 0, "Barikoviev"); respuesta <set <tring>> sose = t.zrange ("foo", 0, -1); // return todos los correspondientes y return System.out.println (respuesta); system.out.println (sose); t.exec (); // Tenga en cuenta que esta línea, la línea no puede ser faltante = respuesta = respuesta = respuesta. sose.get (). size (); // sose.get () System.out.println (Foolbar); System.out.println (Sose.get ()); System.out.println ("El tamaño de la colección es:" + SoseSize);}Operación de tuberías Código Java:
public void transactionPipelInetest () {Pipeline p = jedis.pipelined (); // abre una tubería p.set ("Fool", "Bar"); p.zadd ("foo", 1, "barowitch"); p.zadd ("foo", "barinsky"); p.zadd ("foo", 0, "string>; p.get ("Fool"); respuesta <set <string>> sose = p.zrange ("foo", 0, -1); system.out.println (pipestring); system.out.println (sose); p.sync (); // enviar System.out.println ("=============================================; System.out.println (p.get (" Fool ")); System.out.Println (p.zrange (" foo ", 0, -1)); int soseSize SECUPTAR = SOSE.GET (); System.out.println (Sosesize); System.out.println (SECUPTAR); System.out.println (PipeString.get ());}Resumir
Lo anterior es toda la introducción detallada de la Operación Java Redis en este artículo, espero que sea útil para todos. Si hay alguna deficiencia, deje un mensaje para señalarlo. Gracias amigos por su apoyo para este sitio.