lettuce_enterprise
Lettuce for Redis Enterprise
Lettuce for Redis Enterprise
Lettuce 6.1.3.ENT에서 지원하는 Redis Enterprise 명령
공통
SQL
STRING
LIST
SET
ZSET
HASH
공통 COMMON
포함해야 할 package
 
Import package
접속 connection
 
Connect to Redis Server
 
Redis Enterprise에서는 데이터베이스 변경 시 cd를 사용합니다. 
Select는 데이터를 조회하는 SQL Select로 사용합니다. 
사용 예
- cd 1 -> syncCommands.cd(1); 1번 db로 옮깁니다. 
 
Test code
패턴을 키를 조회할 수 있고 다른 다양한 방법으로 키를 조회할 수 있습니다. 
사용 예
- ls * -> syncCommands.ls("*"); 모든 키를 조회합니다.  
 - ls user* -> syncCommands.ls("user*"); user로 시작하는 키를 조회합니다. 
 - ls * string -> syncCommands.ls("*","string"); string 키를 모두 조회합니다. 
 - ls * type -> syncCommands.ls("*","type"); 모든 키와 data type을 조회합니다. 
 - ls * memory -> syncCommands.ls("*","memory"); 모든 키와 키가 사용하고 있는 메모리를 조회합니다. 
 - ls * sort -> syncCommands.ls("*","sort"); 모든 키를 소트해서 조회합니다. 
 - ls * count 10 -> syncCommands.ls("*","count","10"); 키를 10개만 조회합니다. 
 
Test code
삭제할 키를 여러 개 지정할 수 있고, 서브쿼리를 사용할 수 있습니다. 
사용 예
- rm key1 -> syncCommands.rm("key1"); key1을 삭제합니다. 
 - rm key2 key3 -> syncCommands.rm("key2","key3"); key2, key3을 삭제합니다. 
 
Test code
서브쿼리를 사용할 수 있습니다. 
사용 예
- rms (get key) -> syncCommands.rms("(get key)"); get key의 결과로 키를 삭제합니다. 
 - rms (ls user*) -> syncCommands.rms("(ls user*)"); user로 시작하는 키를 삭제합니다. 
 - rms (ls * string) -> syncCommands.rms("(ls * string)");  string 키 모두를 삭제합니다. 
 
Test code
SQL
 
SELECT로 데이터를 조회합니다. 
사용 예
- select * from string.*; -> syncCommands.sqlselect('select * from string.*;'); 
String 키,값을 조회합니다. 
 - select * from list.*; -> syncCommands.sqlselect('select * from list.*;'); 
List 키,값을 조회합니다. 
 - select * from set.*; -> syncCommands.sqlselect('select * from set.*;'); 
Set 키,값을 조회합니다. 
 - select * from zset.*; -> syncCommands.sqlselect('select * from zset.*;'); 
ZSet 키,값을 조회합니다. 
 - select * from hash.*; -> syncCommands.sqlselect('select * from hash.*;'); 
Hash 키,값을 조회합니다. 
 - select * from stream.*; -> syncCommands.sqlselect('select * from stream.*;'); 
Stream 키,값을 조회합니다. 
 
String Test code
- Test code 1: select key from string.*;
 
List Test code
- Test code 1: select * from list.*;
 
Set Test code
- Test code 1: select * from set.*;
 
ZSet Test code
- Test code 1: select * from zset.*;
 
Hash Test code
- Test code 1: select * from hash.*
 
Stream Test code
- Test code 1: select * from stream.*
 
Function valcnt(), len(), card() Test code
   키에 속한 값/요소(element)/멤버(member) 개수를 조회한다. Valcnt = len = card
   String은 항상 1이 조회된다. 
 다른 데이터 타입은 값의 개수가 조회된다.
 
- Test code: select key, valcnt(key), len(key), card(key) from hash.*
 
Function memory() Test code
   키와 값이 차지하고 있는 메모리량을 조회한다.
 
- Test code: select key, memory(key) from hash.*
 
Function type(), encoding() Test code
   키의 데이터 타입, 인코딩 타입을 조회한다. 
 
- Test code: select key, type(key), encoding(key) from hash.*
 
Function updatetime() Test code
   키의 마지막 갱신시각(updatetime)을 조회한다.
- Test code: select key, type(key), updatetime(key) from hash.*
 
 
INSERT로 데이터를 저장합니다.
사용 예
- String -> syncCommands.sqlinsert("insert into string values('key1','value1')"); 
 - List -> syncCommands.sqlinsert("insert into list values('mylist1','value1','value2')"); 
 - Set -> syncCommands.sqlinsert("insert into set values('myset1','value1','value2')"); 
 - ZSet -> syncCommands.sqlinsert("insert into zset values('zset1', 23.5, 'value1', 36.7, 'value2')"); 
 - Hash -> syncCommands.sqlinsert("insert into hash values('myhash1', 'field1', 'value1', 'field2', 'value2')"); 
 - Stream -> syncCommands.sqlinsert("insert into stream values('sensor_1', '*', 'field1', 'value1', 'field2', 'value2')"); 
 
String insert Test code
- Test code: 
 
List insert Test code
- Test code: 
 
Set insert Test code
- Test code: 
 
ZSet insert Test code
- Test code: 
 
Hash insert Test code
- Test code: 
 
Stream insert Test code
- Test code: 
 
 
DELETE로 데이터를 삭제합니다.
사용 예
- String; -> syncCommands.sqldelete("delete from string.key1"); 
 - List -> syncCommands.sqldelete("delete from list.mylist1"); 
 - Set -> syncCommands.sqldelete("delete from set.myset1"); 
 - Zset -> syncCommands.sqldelete("delete from zset.zset1"); 
 - Hash -> syncCommands.sqldelete("delete from hash.myhash1"); 
 - Stream -> syncCommands.sqldelete("delete from stream.sensor_1"); 
 
String delete Test code
- Test code: 
 
List delete Test code
- Test code: 
 
Set delete Test code
- Test code: 
 
ZSet delete Test code
- Test code: 
 
Hash delete Test code
- Test code: 
 
Stream delete Test code
- Test code: 
 
STRING
String에서 서브쿼리를 사용해 값을 저장합니다.
사용 예
- sets mykey (get key) -> syncCommands.sets("mykey", "(get key)");   
get key의 결과 값을 mykey에 넣습니다.
 
Test code
String에서 서브쿼리를 사용해 값을 추가합니다. 
사용 예
- appends mykey (get key) -> syncCommands.appends("mykey", "(get key)");   
get key의 결과 값을 mykey에 추가합니다. 
 
Test code
LIST
List에서 서브쿼리를 사용해 값을 넣습니다. 
사용 예
- lpushs mylist (get key) -> syncCommands.lpushs("mylist", "(get key)");   
get key의 결과 값을 mylist에 넣습니다.
 - lpushs mylist2 (lrange mylist 0 -1) -> syncCommands.lpushs("mylist2", "(lrange mylist 0 -1)"); 
"lrange mylist 0 -1"의 결과 값을 mylist2에 넣습니다.
 
Test code
List에서 서브쿼리를 사용해 값을 넣습니다. 
사용 예
- rpushs mylist2 (lrange mylist 0 -1) -> syncCommands.rpushs("mylist2", "(lrange mylist 0 -1)");   
"lrange mylist 0 -1"의 결과 값들을 mylist2에 넣습니다.
 
Test code
리스트에서 패턴으로 값을 조회할 수 있고, 소트할 수 있습니다.
사용 예
- lls mylist A* -> syncCommands.lls("mylist","A*"); mylist에서 A로 시작하는 값을 조회합니다.  
 - lls mylist A* sort -> syncCommands.lls("mylist","A*","sort"); mylist에서 A로 시작하는 값을 소트해서 조회합니다.  
 
Test code
리스트에서 패턴으로 값을 삭제합니다. 
사용 예
- lrm mylist A* -> syncCommands.lrm("mylist","A*"); mylist에서 A로 시작하는 값을 삭제합니다. 
 
Test code
 소트해서 조회할 수 있습니다. 
 주의: CLI에서는 LRANGE를 사용하고 Lettuce에서는 LRANGE2()를 사용합니다.
사용 예
- lrange mylist 0 -1 sort -> syncCommands.lrange2("mylist",0,-1,"sort");   
mylist의 값을 소트해서 조회합니다. 
 
Test code
 리스트의 값을 오른쪽에서 왼쪽으로 조회합니다. 
 주의: CLI에서는 LREVRANGE를 사용하고 Lettuce에서는 LREVRANGE2()를 사용합니다.
사용 예
- lrevrange mylist -1 0-> syncCommands.lrevrange2("mylist",-1,0);   
mylist의 값을 오른쪽에서 왼쪽으로 조회합니다.
 
Test code
SET
 Member에 만료시간(expire)를 설정할 수 있습니다.
사용 예
- sadd myset E1 ex 20 -> syncCommands.sadd("myset", "E1","ex","20");   
만료시간(expire)를 지정할 수 있습니다. 
 
Test code
Set에서 서브쿼리를 사용해서 member를 저장할 수 있습니다.
사용 예
- sadds myset (lrange mylist 0 -1) -> syncCommands.sadds("myset", "(lrange mylist 0 -1)");   
서브쿼리를 사용해서 데이터를 넣을 수 있습니다.
 - sadd myset (lrange mylist 0 -1) ex 20 -> syncCommands.sadd("myset", "(lrange mylist 0 -1)","ex","20");   
만료시간(expire)를 지정할 수 있습니다. 이 경우 서브쿼리 결과 멤버 모두에 만료시간이 적용됩니다.
 
Test code
셋(Set)에서 패턴으로 값을 조회할 수 있고, 소트할 수 있습니다.
사용 예
- sls myset A* -> syncCommands.sls("myset","A*"); myset에서 A로 시작하는 값을 조회합니다. 
 - sls myset A* sort -> syncCommands.sls("myset","A*","sort"); myset에서 A로 시작하는 값을 소트해서 조회합니다.  
 
Test code
셋(Set)에서 패턴으로 값을 삭제합니다. 
사용 예
- srm myset A* -> syncCommands.srm("myset","A*") myset에서 A로 시작하는 값을 삭제합니다. 
 
Test code
Set에서 키에 속한 멤버 개수를 조회합니다.
사용 예
- slen myset -> syncCommands.slen("myset");   
myset에 속한 멤버 개수를 조회합니다.
 
Test code
Set에서 키를 여러 개 사용해서 조회할 수 있고, 소트할 수 있습니다. 
주의: CLI에서는 SMEMBERS를 사용하고 Lettuce에서는 SMEMBERS2()를 사용합니다.
사용 예
- smembers myset1 myset2 -> syncCommands.smembers2("myset","myset2");   
키를 여러 개 사용해서 조회할 수 있습니다.
 - smembers myset1 myset2 sort -> $this->redis->smembers2('myset1', 'myset2', 'sort');   
소트해서 조회할 수 있습니다. 이 경우 각 키 안에 있는 멤버를 대상으로 소트합니다. 
 
Test code
연산(합집합, 교집합, 차집합) 결과를 소트할 수 있습니다. 
주의: CLI에서는 SUNION/SINTER/SDIFF를 사용하고 Lettuce에서는 SUNION2()/SINTER2()/SDIFF2()를 사용합니다.
사용 예
- sunion myset1 myset2 -> syncCommands.sunion2("myset","myset2");   
myset1과 myset2의 합집합을 구해서 소트해서 조회합니다.
 - sinter myset1 myset2 -> syncCommands.sinter2("myset","myset2");   
myset1과 myset2의 교집합을 구해서 소트해서 조회합니다.
 - sdiff myset1 myset2 -> syncCommands.sdiff2("myset","myset2");   
myset1과 myset2의 차집합을 구해서 소트해서 조회합니다.
 
Test code
ZSET
ZSet에서 member에 만료시간(expire)를 설정할 수 있습니다. 
사용 예
- zadd myzset 10 value ex 20 -> syncCommands.zadds("myzset", 10, "value", "ex", "20");
ex 20으로 만료시간(expire)를 지정할 수 있습니다.
 
Test code
ZSet에서 서브쿼리를 사용해서 score, member를 저장할 수 있고, 만료시간(expire)를 지정할 수 있습니다. 
사용 예
- zadds myset (lrange mylist 0 -1) -> syncCommands.zadds("myzset", "(lrange mylist 0 -1)");   
'lrange mylist 0 -1' 쿼리 결과가 myzset에 저장됩니다. 
이 경우 스코어는 0으로 들어갑니다.
 - zadds myzset (lrange mylist 0 -1) ex 20 -> syncCommands.zadds("myzset", "(lrange mylist 0 -1)", "ex", "20");
ex 20으로 만료시간(expire)를 지정할 수 있습니다. 이 경우 서브쿼리 결과 멤버 모두에 만료시간이 적용됩니다.
 
Test code
ZSet에서 패턴으로 값을 조회할 수 있고, 소트할 수 있습니다.
사용 예
- zls myzset A* -> syncCommands.zls("myzset","A*"); myzset에서 A로 시작하는 값을 조회합니다.  
 - zls myzset A* sort -> syncCommands.zls("myzset","A*","sort"); 값을 소트해서 조회합니다.  
 
Test code
ZSet에서 패턴으로 값을 삭제합니다. 
사용 예
- zrm myzset A* -> syncCommands.zrm("myzset","A*"); myzset에서 A로 시작하는 값을 삭제합니다. 
 
Test code
ZSet에서 키에 멤버가 있는지 확인합니다.
사용 예
- zismember myzset 'A1' -> syncCommands.zismember("myzset","A1");   
키 myzset에 'A1'이 있는지 확인합니다.
 
Test code
HASH
Hash에서 서브쿼리를 사용해서 fiend, value를 저장할 수 있고, 만료시간(expire)를 지정할 수 있습니다. 
사용 예
- hsets myhash3 (get user1) -> syncCommands.hsets("myhash3", "(get user1)");   
'get user1' 쿼리 결과가 myhash3에 user1은 field로, 값은 value로 저장됩니다.
 - hsets myhash3 (hgetall myhash) ex 20 -> syncCommands.hsets("myhash3", "(hgetall myhash)", "ex", "20");
ex 20으로 만료시간(expire)를 지정할 수 있습니다. 이 경우 서브쿼리 결과 멤버 모두에 만료시간이 적용됩니다.
 
Test code
해시(Hash)에서 필드에 패턴으로 값을 조회할 수 있고, 소트할 수 있습니다.
사용 예
-  hls myhash A* -> syncCommands.hls("myhash","A*"); myhash에서 A로 시작하는 필드를 조회합니다.  
 -  hls myhash A* sort -> syncCommands.hls("myhash","A*","sort"); 값을 소트해서 조회합니다. 
 
Test code
해시(Hash)에서 필드에 패턴으로 값을 삭제합니다. 
사용 예
- hrm myhash A* -> syncCommands.hrm("myhash","A*"); myhash에서 A로 시작하는 필드를 삭제합니다.
 
Test code
ZSet에서 키에 속한 멤버 개수를 조회합니다. 
사용 예
- zlen myzset -> syncCommands.zlen("myzset");   
myzset에 속한 멤버 개수를 조회합니다. 
 
Test code
멀티 키 사용: 해시(Hash)에서 키를 여러 개 입력해서 조회합니다. 
사용 예
- hkeys myhash1 myhash2 -> syncCommands.hkeys("myhash1","myhash2");   
키 myhash1과 myhash2의 필드를 조회합니다.
 - hvals myhash1 myhash2 -> syncCommands.hvals("myhash1","myhash2");   
키 myhash1과 myhash2의 값을 조회합니다.
 - hgetall myhash1 myhash2 -> syncCommands.hgetall("myhash1","myhash2");   
키 myhash1과 myhash2의 필드와 값을 조회합니다.
 
Test code