1. 소개
REDIS는 데이터베이스, 캐시 및 메시지 미들웨어로 사용할 수있는 오픈 소스 (BSD 라이센스) 메모리 키 값 저장 시스템입니다.
2. 키에서 작동
먼저 연결을 설정해야합니다. Jedis Jedis = New Jedis ( "127.0.0.1", 6379), String, Set, Zset 및 Hash를 작동 할 수 있습니다.
// 주요 공개 void keytest () {system.out.println (jedis.flushdb ()); // 명확한 data system.out.println (jedis.echo ( "hello")); // hellosystem.out.println ( "foo"); jedis ( "keyt.1); "values1"); jedis.set ( "key2", "value2"); system.out.println (jedis.exists ( "key1")); // 키가 문자열로 존재하는지 판단합니다. randomkey = jedis.randomkey (); // 랜덤 키시 스템 .out.out.println ( "랜덤 키 이름은" + randomkey); jedis.expire ( "key1", 60); // 생존 시간을 선택합니다. system.out.println (jedis.pttl ( "key1")); // 남은 생존 시간 // 키 만료 시간 jedis.persist ( "key1"); // 키의 유형을 가져옵니다. 키 // 키 문자열 값 = jedis.get ( "key1"); system.out.println (value); // 키 jedis.renamenx ( "key1", "keytest"); system.out.println ( "key1"); // system.println ( "keytest"(// quer)가 있는지 여부를 결정합니다. 키 * 데이터베이스의 모든 키와 일치합니다. // 키 h? llo는 Hello, Hallo 및 Hxllo 등과 일치합니다. // 키 H*llo는 hllo 및 heeeeelo 등과 일치합니다. // 키 H [AE] llo는 Hello와 Hallo와 일치하지만 Hillo는 아닙니다. // 특수 기호는 /로 분리됩니다. set <string> set = jedis.keys ( "k*"); // 모든 관련 키 키 메소드 메소드 시스템 시스템 System.out.out.println (set); jedis.del ( "key1"); // 키 델 메소드 System.out.println (jedis.exists ( "key1"));3. 문자열 데이터 유형
Mystr "Hello World!" // 문자열 유형 설정 mystr // 문자열 유형을 읽으십시오. 문자열에서 수치 작업을 수행하려면 127.0.0.1:6379> Mynum 설정 "2"ok127.0.0.1 : 6379> mynum get mynum "2"127.0.1:6379> incr mynum (integer) 3127.0.0.1:6379.0.1 "
Java 작동 코드는 다음과 같습니다.
// 문자열 작업에서 테스트 public void StringTest () {jedis.set ( "hello", "hello"); // setsystem.out.println (jedis.get ( "hello")); // jedis.append ( "hello", "world"); // append method.out.out.println ( "hello"); jedis.set ( "hello", "123"); System.out.println (jedis.get ( "hello")); // 만료 시간 설정 jedis.setex ( "hello2", 2, "world2"); System.out.println (jedis.get ( "hello2")); try {thread.slee (3000); {e.printstacktrace ();} system.out.println (jedis.get ( "hello2")); // 한 번에 여러 key value 쌍을 한 번에 jedis.mset ( "a", "1", "b", "2")에 추가합니다. jedis.del ( "a", "b"); System.out.println (jedis.exists ( "a")); System.out.println (jedis.exists ( "b"));}의 배치 삭제4. 목록 데이터 유형
Redis의 목록은 기본 구현의 배열이 아니라 링크 된 목록입니다.
일련의 작업 : RPUSH, LPUSH, LLEN, LRANGE, LPOP 및 RPOP.
LPUSH를 사용하여 목록의 왼쪽에 새 요소를 삽입하고 RPUSH를 사용하여 목록의 오른쪽에 새 요소를 삽입 한 다음 LRANGE 명령을 사용하여 목록에서 추출 요소까지 범위를 지정할 수 있습니다.
// mylist라는 새 목록을 작성하고 요소 "1"1 "127.0.0.1:6379> lpush mylist"1 "// 현재 mylist (정수)에서 요소 수를 반환합니다. "0"127.0.0.1:6379> lpush mylist "0"(정수) 3 // mylist에서 숫자 0에서 1 번 목록 요소 127.0.0.1:6379> lrange mylist 0 11) "0"2) "1"// 숫자 0에서 마지막 127.0.0.0.1:6379까지의 첫 번째 요소를 나열하십시오. "0"2) "1"3) "2"
Java 작동 코드는 다음과 같습니다.
public void listtest () {string key = "mylist"; jedis.del (key); // 이전 하나를 삭제 // 큐 jedis.rpush (key, "aaaa"); jedis.rpush (키, "bbbb"); jedis.rpush (key, "cccc"); "cccc"); // 수량 길이 시스템 .out.println ( "lenth :" + jedis.llen (key)); // 인덱스 0에서 첫 번째 (모든 요소) System.out.println ( "모든 요소 :" + jedis.lrange (키, 0, -1)); jedis.lindex (key, 1)); // 큐에서 요소 값을 설정하면 인덱스가 범위를 초과하면 오류가 반환됩니다. jedis.lset (key, 1, "aa22"); system.out.println ( "색인 1 :" + jedis.lindex (key, 1)); // queue jedis.rpush (key, "-2", "-1")의 요소에서 요소를 queue jedis (queue jedis)의 오른쪽 측면에서 queue. "-1"); // 큐의 왼쪽에서 queue jedis.rpush (키, "두 번째 요소", "첫 번째 요소"); // 첫 번째 요소, 첫 번째 요소 // 요소는 대기열 시스템에 들어갑니다. System.out.println (jedis.rpop (key)); // 큐 System.out.println (jedis.lpop (key))의 왼쪽에서 요소를 dequeues; System.out.println ( "모든 요소 :" + jedis.lrange (key, 0, -1)); // count> 0 : 처음부터 끝까지 값이있는 요소를 제거하고 카운트는 제거 된 수입니다. // count <0 : 끝에서 머리까지 값으로 요소를 제거하고 카운트는 제거 된 수입니다. // count = 0 : 값의 모든 요소를 제거합니다. jedis.lrem (키, 1, "CCCC"); System.out.println ( "모든 요소 :" + jedis.lrange (key, 0, -1)); // 가장 오른쪽 요소도 포함됩니다. 시작이 목록의 테일 첨자보다 큰 경우 빈 목록이 반환됩니다. // 정지가 목록의 실제 꼬리보다 크면 Redis는이를 마지막 요소의 첨자로 취급합니다. System.out.println (jedis.lrange (key, 0, 2)); System.out.println ( "모든 요소 :" + jedis.lrange (key, 0, -1)); // Interval System.out.println (jedis.ltrim (key, 0)); System.out.println ( "All Elements :" + " +. jedis.lrange (키, 0, -1);}5. 유형을 설정합니다
Redis 세트는 순서가없는 세트이며 세트의 요소에는 순서가 없습니다.
SADD, SREM, Sismember, Smembers and Sunion : 일련의 운영.
새로운 요소 추가, 기존 요소 삭제, 교차로 얻기, 노조 취득, 차이 세트 등과 같은 세트 관련 작업도 풍부합니다.
// 컬렉션에 새 요소를 추가하십시오 MySet "One"127.0.0.1:6379>> SADD MySET "ONE"(Integer) 1127.0.0.1:6379>> SADD MySet "Two"(Integer) 1 // 컬렉션의 모든 요소를 클릭하십시오. Collection MySet에서 return 1은 127.0.0.1:6379> sismember myset "one"(정수) 1 // 용어 요소 3이 컬렉션에 있는지 여부, return 0 수단이 존재하지 않는다. "1"(정수) 1127.0.0.1:6379> sadd yourset "2"(정수) 1127.0.0.1:6379> smembers yourset1) "1"2) "2"// 두 세트의 결합을 만듭니다.
자바 운영 코드 :
public void settest () {// data system.out.println (jedis.flushdb ()); String key = "myset1"; String key2 = "myset2"; // 컬렉션 jedis.sadd (key, "aaa", "bbb", "ccc")에 요소를 추가합니다. "ddd"); // 컬렉션 시스템에서 요소 수를 얻습니다. out.println (jedis.scard (key)); // 세트의 숫자 수는 두 세트의 교차점을 얻고 키 결과 세트 jedis.sinterstore ( "대상, 키, 키, system.out.println (jedis.smmbers의 획득); 키 결과 세트에 저장 Jedis.sunionStore ( "대상", key2); System.out.println ( "대상"); // key1 세트에는 요소가없고 주요 결과 세트 Jedis.sdiffStore ( "Destination", key, 저장합니다. key2); system.out.println (jedis.smembers ( "destination")); // 요소가 컬렉션 시스템의 구성원임을 결정합니다. jedis.smove (key, key2, "aaa"); system.out.println (jedis.smembers (key)); // 요소 system.out.println (jedis.smembers (key2)); // 컬렉션에서 요소를 삭제하고 얻을 수 있습니다. jedis.srem (key2, "ccc", "ddd"); system.out.println (jedis.smembers (key2));}6. 정렬 된 세트 유형
우리는 모두 Redis Zsets에서 주문 세트를 호출합니다
// 순서 세트 Myzset을 추가하고 요소 Baidu.com을 추가하면 주어진 시퀀스 번호는 1127.0.0.1:6379> zadd myzset 1 baidu.com (Integer) 1 // 요소 360.com을 myzset에 추가하고, 그에 주어진 시퀀스 번호는 3127.0.1:6379 (zadd 36379) (zadd 36379)입니다. Google.com to Myzset 및 그에 부여 된 시퀀스 번호는 2127.0.0.1:6379> Zadd MyZset 2 Google.com (Integer) 1 // MyZSet의 모든 요소를 추가하고 동시에 시퀀스 번호를 나열하면 MyZSet이 이미 주문되었음을 알 수 있습니다. 127.0.0.1:6379> Zrange Myzset 0 -1 점수 1) "baidu.com"2) "1"3) "Google.com"4) "2"5) "360.com"6) "3"// myzset127.0.1 : 6379> Zrange myzset 0 -11) "360.com"2) 360.
Java 작동 코드는 다음과 같습니다.
public void zsettest () {// 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); // 데이터 추가 jedis.zadd (키, 1004.0, "ddd"); jedis.zadd (키, 스코어 메머스); // 정렬 된 세트 시스템에서 멤버 수를 얻습니다. 순서 세트의 첫 번째 멤버, 1은 순서 세트의 두 번째 멤버 등을 나타냅니다. // 마지막 멤버를 나타내는 -1을 나타내는 음성 첨자, 두 번째 멤버 세트 <string> coll = jedis.zrange (key, 0, -1); system.out.println (coll); // 지정된 범위 내에서 멤버의 역 순서 세트를 반환합니다. coll = jedis.zrevrange (key, 0, -1); colln (// element subscript); system.out.println (jedis.zscore (키, "bbb"); // 요소 system.out.println (jedis.zrem (key, "aaa"); system.out.println (jedis.zrange (key, 0, -1)); hearn value range system.out.println (jedis. 1002.0, 1003.0);}7. 해시 유형
해시는 문자열과 문자열 값 사이에 매핑을 저장합니다
// 해시 생성 및 127.0.0.1:6379> HMSET 사용자 : 001 사용자 이름 Antirez Password P1PP0 Age 34OK // HASH127.0.0.1 : 6379의 내용을 나열하십시오. "34"// HASH127.0.0.1 : 6379의 값 변경> HSET 사용자 : 001 비밀번호 12345 (Integer) 0 // HASH127.0.0.1 : 6379> HGETALL의 내용을 나열하십시오.
자바 운영 코드 :
public void hashtest () {// 명확한 데이터 시스템 .out.out.println (jedis.flushdb ()); String key = "myHash"; map <string, string = ""> new Hashmap <> (); Hash.put ( "AAA", "11"); "BBB", "3"); 데이터 jedis.hmset (key, hash); jedis.hset (key, "ddd", "44"); // 해시 (키 값) system.out.println (jedis.hkeys (key))의 모든 요소를 가져옵니다. system.out.println (jedis.hlen (key)); // 해시에서 모든 필드와 값을 가져 와서 return map <string, string = ""> elements = jedis.hgetall (key); system.out.println (elements); // 해시 세트 System.out.println (jedis.hexists (key); ")에 주어진 키 값이 존재하는지 여부를 결정합니다. HASH System.out.println의 지정된 필드에 해당하는 값 (jedis.hmget (키, "AAA", "BBB"); // 지정된 값 시스템을 가져옵니다 .out.out.println (jedis.hget (키, "AAA"); // 지정된 값 시스템을 삭제합니다. System.out.println (jedis.hgetall (key)); // 키 플러스 필드 필드입니다.8. 거래
거래는 "모든 실행 또는 아무것도 수행하지 않은 완전한 조치"를 말합니다.
Redis 트랜잭션에 대해 이야기하기 전에 먼저 멀티, exec, 버려지 및 시계 등 4 개의 REDIS 지침을 소개합니다. 이 네 가지 지침은 Redis 거래 처리의 기초를 형성합니다.
1. Multi는 거래를 조립하는 데 사용됩니다.
2.exec은 거래를 실행하는 데 사용됩니다.
3. 폐기물은 거래를 취소하는 데 사용됩니다.
4. 워치는 일부 키를 모니터링하는 데 사용됩니다. 트랜잭션이 실행되기 전에 이러한 키가 변경되면 트랜잭션 실행이 취소됩니다.
REDIS> MULTI // 트랜잭션 시작 OKREDIS> exc user_id // 여러 명령이 순서 대기열에서 대기됩니다.
Java 작동 코드는 다음과 같습니다.
public void transactiontest () {트랜잭션 t = jedis.multi (); // 트랜잭션 t.set ( "hello", "world"); 응답 <string> response = t.get ( "hello"); T.zadd ( "foo", "barowitch"); t.zadd ( "foo", 0, "0,", 0 " "barikoviev"); 응답 <set <string >> sose = t.zrange ( "foo", 0, -1); // 모든 해당 및 반환 시스템을 반환하고 반환합니다 .println (response); system.out.println (sose); //이 선이 문자열 바보 = response (// 응답)가 누락 될 수 없다는 점 (); = sose.get (). size (); // sose.get () system.out.println (gelbar); system.out.println (sose.get ()); system.out.println ( "컬렉션의 크기는 :" + sosesize);}파이프 라인 작동 Java 코드 :
public void transactionpipelinetest () {pipeline p = jedis.pipelined (); // 파이프 라인 ( "바보", "바"); p.zadd ( "foo", "barowitch"); p.get ( "gel"); 응답 <set <string >> sose = p.zrange ( "foo", 0, -1); system.out.println (pipestring); System.out.println (sose); p.sync (); // 제출 System.out.println("==========================================;System.out.println(p.get("fool"));System.out.println(p.zrange("foo", 0, -1));int soseSize = sose.get().size();Set<string> stack = sose.get (); system.out.println (sosesize); system.out.println (setback); system.out.println (pipestring.get ());}요약
위의 내용은이 기사에서 Java Operation Redis의 자세한 소개입니다. 모든 사람에게 도움이되기를 바랍니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다.