1. Introdução
O Redis é um sistema de armazenamento de valor-chave de código aberto (BSD licenciado), que pode ser usado como middleware de banco de dados, cache e mensagem.
2. Operação na chave
Primeiro, você precisa estabelecer uma conexão. Jedis Jedis = novo Jedis ("127.0.0.1", 6379) e, em seguida, você pode operar string, set, zet e hash.
// teste na chave public void keyTest () {System.out.println (jedis.flushdb ()); // Clear Data System.out.println (jedis.echo ("hello"); // imprima helosystem.out.println (jedis.exists ("foo"); "valores1"); jedis.set ("key2", "valores2"); System.out.println (jedis.exists ("key1")); // julga se a chave existe com string aleatoryKey = jedis.randomkey (); // selecione um randomysystem.out.println ("o nome do randomkey é:" + randomkey); jedis.expire ("key1", 60); System.out.println (jedis.pttl ("key1")); // tempo de sobrevivência restante // remova o tempo de expiração da chave jedis.persist ("key1"); // obtém o tipo de chaves, "string", "list", "set" "nenhum" nenhum significa que a chave não existe sistemas.out.println ("tipen"; chave // exporte o valor do valor da string de chave = jedis.get ("key1"); system.out.println (value); // renomeie a chave jedis.renamenx ("key1", "keytest"); system.print.println ("key1); As chaves * correspondem a todas as teclas no banco de dados. // chaves h? // símbolos especiais são separados por /. Set <string> set = jedis.keys ("k*"); // Obtenha todos os métodos de chaves relevantes System.out.println (set); jedis.del ("key1"); // exclua o key del Method System.out.println (jedis.exists ("key1");}}3. Tipo de dados da string
Defina o Mystr "Hello World!" // Definir tipo String Get Mystr // Leia o tipo de string para executar operações numéricas na String 127.0.0.1:6379> Definir Mynum "2" OK127.0.0.1: 6379> Get Mynum "2" 127.0.0.1:6379> incr Mynum (Integers) 3127..
O código de operação Java é:
// teste na operação String public void stringTest () {jedis.set ("hello", "hello"); // setsystem.out.println (jedis.get ("hello")); // get // use append) para adicionar jedis. Jedis.set ("Hello", "123"); System.out.println (jedis.get ("hello")); // Defina o tempo de expiração jedis.setex ("hello2", 2, "mundial2"); system.out.println (jedis.get ("hello2")); try {thread.sLeep (3000);} catch (intercruedException e); {E.PrintStackTrace ();} System.out.println (jedis.get ("hello2")); // Adicione vários pares de valores-chave ao mesmo tempo jedis.mset ("a", "1", "b", "2"); // obtendo o valuelist de A e Balus = Jedis.mget "" A "A" A "A" A "A // Obtenha o Valuel de A e Balus = Jedis.mget" A "2"); Exclusão em lote de jedis.del ("a", "b"); system.out.println (jedis.exists ("a")); system.out.println (jedis.exists ("b"));}4. Listar o tipo de dados
As listas em Redis não são matrizes na implementação subjacente, mas listas vinculadas.
Uma série de operações: RPUSH, LPUSH, LLEN, LRANGE, LPOP e RPOP.
Podemos usar o LPUSH para inserir um novo elemento no lado esquerdo das listas, usar o RPush para inserir um novo elemento no lado direito das listas e usar o comando lRange para especificar um intervalo de listas para extrair elementos.
// Crie uma nova lista chamada mylist e insira elemento "1" 127.0.0.1:6379> lpush mylist "1" // retorna o número de elementos na atual MyList (inteiro) 1 // inserir elemento "2" 127.0.0.1:6379> rpush mylerger "2" (inteiro) 27.0.0.1:6379> "0" 127.0.0.1:6379> lpush mylist "0" (número inteiro) 3 // Liste elementos do número 0 para o número 1 na mylist 127.0.0.1:6379> lRange Mylist 0 11) "0" 2) "1" // listar o primeiro elemento em mylist de 0 a 0,1. "0" 2) "1" 3) "2"
O código de operação Java é:
public void listTest () {string key = "myList"; jedis.del (key); // exclua o elemento anterior // Adicione o elemento à fila jedis.rpush (key, "aaaa"); jedis.rpush (key, "bbbb"); jedis.rpush (key "cccc"); "CCCC"); // Sistema de comprimento de quantidade.out.println ("lenth:" + jedis.llen (key)); // Imprima fila, começando do índice 0, até o primeiro (todos os elementos) System.out.println ("todos os elementos:" + jedis.lrange (key, 0, -"); jedis.lindex (chave, 1)); // Defina o valor de um elemento na fila, e um erro será retornado quando o índice exceder o intervalo. jedis.lset (key, 1, "aa22"); system.out.println ("Índice de 1:" + jedis.lindex (chave, 1)); // engene um elemento do lado direito do lado da fila jedis.rpush (key, "-2" -1 "); "-1"); // engene um elemento do lado esquerdo da fila jedis.rpush (chave, "segundo elemento", "primeiro elemento"); // primeiro segundo // elemento, então primeiro // elementf entra na fila system.out.println ("todos os elementos:" + jedis.lrange (kee de 0, -1); System.out.println (jedis.rpop (key)); // Dequees um elemento do lado esquerdo do sistema de fila.out.println (jedis.lpop (key)); System.out.println ("Todos os elementos:" + jedis.lRange (chave, 0, -1)); // contagem> 0: remove um elemento com um valor do início ao fim, e a contagem é o número de removidos. // contagem <0: Remova o elemento com um valor do final à cabeça e a contagem é o número de removidos. // count = 0: remove todos os elementos com valor. jedis.lrem (chave, 1, "cccc"); system.out.println ("todos os elementos:" + jedis.lRange (chave, 0, -1)); // ou é, o elemento mais à direita também será incluído. Se o início for maior que o subscrito da cauda da lista, uma lista vazia será retornada. // Se a parada for maior que a cauda real da lista, o Redis o tratará como o subscrito do ú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(key, 0, -1));}5. Tipo de configuração
O conjunto de redis é um conjunto não ordenado e os elementos no conjunto não têm ordem.
Uma série de operações: SADD, SREM, SMISMEMBER, SMEMBERS e SUNION.
As operações relacionadas ao conjunto também são ricas, como adicionar novos elementos, excluir elementos existentes, obter cruzamentos, tomar sindicatos, obter conjuntos de diferenças etc.
// Adicione um novo elemento à coleção MySet "One" 127.0.0.1:6379> sadd myset "One" (Inteiro) 1127.0.0.1:6379> MySet "dois" (integla) 1 // clique em todos os elementos da coleção Myset127.0.0.1: 63777> 1 // // clique em todos os elementos da coleção Myset127.0.0.1: 6377> A coleção MySet, Return 1 significa que existe 127.0.0.1:6379> MEMBER MYSET "ONE" (Inteiro) 1 // Termo se o elemento 3 está na coleção MySet, retornar 0 significa que não existe 127.0.0.1:6379> sísmem myset "três" (integger) 0 // Crie um novo setset27. "1" (inteiro) 1127.0.0.1:6379> SADD YEATSET "2" (Inteiro) 1127.0.0.1:6379> SMEMBERS SENSET1) "1" 2) "2" // Crie uma união de dois sets127.0.0.0.1: 6379) "2" // Crie Myion 1) 1) "3)" 3) ")" 2 "SONION)
Código de operação Java:
public void SettStest () {// Limpe o Data System.out.println (Jedis.flushdb ()); String key = "MySet1"; String key2 = "MySet2"; // Adicione elementos ao JEDIS.Sadd (Key, "AAA", "BBB", "CCC"); "ddd"); // obtenha o número de elementos no sistema de coleta.out.println (jedis.scard (key)); // a contagem de números do conjunto // obtém a interseção de dois conjuntos e armazenam -o em um resultado -chave. e armazená -lo em um conjunto de resultados importantes Jedis.SunioStore ("Destination", Key, Key2); System.out.println (Jedis.smembers ("Destination")); // No conjunto Key1, o conjunto KEY2 não possui elementos e os armazena em um conjunto de resultados -chave JEDIS.SDIFFSTORE ("Destination, key, Key, Key, Key, Key, key2); System.out.println (Jedis.smembers ("Destination")); // Determine que um elemento é um membro de um sistema de coleção.out.println (Jedis.SemMember (key, "aaa")); // obtenha um elemento da coleta de chave.out.Println (JEDIS.Srandmembermbers (); Jedis.smove (key, key2, "aaa"); system.out.println (jedis.smembers (key)); // get the element system.out.println (jedis.smembers (key2)); // delete e obtenha os elementos em um sistema de coleta.out.Println (jEdis.spop.pop); Jedis.srem (Key2, "CCC", "DDD"); System.out.println (Jedis.smembers (KEY2);}6. Tipo de conjuntos classificados
Todos nós chamamos o conjunto ordenado em Redis ZSets
// Adicione um conjunto encomendado myzset e adicione um elemento Baidu.com, e o número de sequência dado a ele é 1127.0.0.1:6379> zadd myzset 1 Baidu.com (número inteiro) 1 // Adicione um elemento 360.com ao myzset, e o número da sequência dado a My 3627.0.0.1:67777777777> zerg 1 3627.0.0.1:6777777> Google.com para myzset, e o número de sequência dado a ele é 2127.0.0.1:6379> zadd myzset 2 google.com (número inteiro) 1 // Adicione todos os elementos do myzset e liste seu número de sequência ao mesmo tempo, você pode ver que o myzset já está encomendado. 127.0.0.1:6379> zRange myzset 0 -1 com as pontuações 1) "Baidu.com" 2) "1" 3) "google.com" 4) "2" 5) "360.com" 6) "3" // Liste apenas os elementos de myzset127.0.0.1: 6379> zrange "
O código de operação Java é:
public void zSetTest () {// Clear Data System.out.println (jedis.flushdb ()); string key = "mySortset"; map <string, duplo = ""> scoremembers = new hashmap <> (); scoremembers. ("aaa", 1001.0); sucrocumemm.boremembers. ("aaa", 1001.0); sucmapM. 1002.0); scoremembers.put ("ccc", 1003.0); // Adicione dados jedis.zadd (chave, 1004,0, "ddd"); indicando o primeiro membro do conjunto ordenado, com 1 indicando o segundo membro do conjunto ordenado e assim por diante. // Subscrito negativo, com -1 representando o último membro, -2 representando o segundo para o último membro do conjunto <String> coll = jedis.zRange (Key, 0, -1); System.out.println (coll); // Retorna o conjunto de pedidos reversos de membros dentro do intervalo especificado = Jedis.zrevRange (key, 0, -1) system.. System.out.println (jedis.zsCore (key, "bbb")); // exclua o elemento system.out.println (jedis.zrem (key, "aaa")); system.out.println (Jedis.zRange (key, 0, -1)); // número de membros dentro do system. 1002.0, 1003,0));}7. Tipo de hash
Hashes armazena o mapeamento entre a string e o valor da string
//Create a hash and assign a value of 127.0.0.1:6379> HMSET user:001 username antirez password P1pp0 age 34OK//List the content of the hash127.0.0.1:6379> HGETALL user:0011) "username"2) "antirez"3) "password"4) "P1pp0"5) "age"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"
Código de operação Java:
public void hashtest () {// limpa dados de dados.out.println (jedis.flushdb ()); string key = "myHash"; map <string, string = ""> hash = new hashmap <> (); hash.put ("aaa", "11"); hash.put ("bb" "" 22 22 "; Adicione dados jedis.hmset (key, hash); jedis.hset (key, "ddd", "44"); // obtenha todos os elementos de hash (valores -chave) System.out.println (jedis.hkeys (key); // obtenha o valor correspondente a todas as teclas em hash System.out.printlnn (jedis); System.out.println (jedis.hlen (key)); // Obtenha todos os campos e valores no hash e retorna mapa <string, string = ""> elementos = jedis.hgetall (key); system.out.println (elementos); jed); jed); jed); jed); jed); jed); jed); jed); correspondente ao campo especificado no hash System.out.println (jedis.hmget (key, "aaa", "bbb")); // obtenha o value especificado System.out.println (jedis.hget (key, "aaa"); System.out.println (Jedis.hgetall (key)); // é o campo de campo no key plus incrementsystem.out.println (jedis.hincby (key, "bbb", 100)); system.out.println (jedis.hgetall (key);});8. Transações
Uma transação refere -se a "uma ação completa, ou executou tudo ou não fez nada".
Antes de falar sobre transações Redis, primeiro apresentaremos quatro instruções de Redis, a saber, multi, executivo, descartar e assistir. Essas quatro instruções formam a base do processamento da transação Redis.
1.Multi é usado para montar uma transação;
2.Exec é usado para executar uma transação;
3. O descarte é usado para cancelar uma transação;
4.Watch é usado para monitorar algumas chaves. Depois que essas chaves são alteradas antes da execução da transação, a execução da transação é cancelada.
Redis> Multi // Tag A transação Iniciar okredis> incr user_id // vários comandos estão na fila na fila de sequência> incum user_idqueedredis> incr user_idqueedredis> pingqueedredis> Exec // Execute 1) (Inteiro) 12) (inteiro) 23) (Integeger) 3) 34)
O código de operação Java é:
public void transactionTest () {transação t = jedis.multi (); // monta uma transação t.set ("hello", "World"); resposta <string> resposta = t.get ("hello"); t.zadd ("foo", 1, "barowitch"); "barikoviev"); resposta <set <Set>> sose = t.zRange ("foo", 0, -1); // retorna todos os correspondentes e retornar sistemas.out.println (resposta); system.out.println (sose); t.exec (); // observa que esta linha, a execution não pode estar ausente (sord); = sose.get (). size (); // sose.get () system.out.println (tolate); system.out.println (sose.get ()); system.out.println ("O tamanho da coleção é:" + sosesize);}Operação de pipeline Código Java:
public void transactionPipelineTest () {pipeline p = jedis.pipelined (); // Abra um pipeline p.set ("tolo", "bar"); p.zadd ("foo", 1, "barowitch"); p.zadd ("foo", 0, "barinsky"); p.get ("tolo"); resposta <set <String>> sose = p.zRange ("foo", 0, -1); system.out.println (pipestring); system.out.println (sose); p.sync (); // enviando System.out.println ("===========================================; System.out.println (P.get ( -1"); setback = sose.get (); system.out.println (sosesize); system.out.println (setback); system.out.println (pipestring.get ());}Resumir
O exposto acima é toda a introdução detalhada da Operação Java Redis neste artigo, espero que seja útil para todos. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio a este site.