이 글은 Redis의 5가지 기본 데이터 유형(String, List, Set, Hash, Zset Ordered Set)에 대해 자세히 이해하는 데 도움이 되기를 바랍니다.
Redis의 경우 모든 키는 문자열입니다. 기본 데이터 구조에 대해 이야기할 때 값을 저장하는 데이터 유형에 대해 논의합니다. 여기에는 주로 5가지 일반적인 데이터 유형(String, List, Set, Zset 및 Hash)이 포함됩니다. [관련 권장사항: Redis 동영상 튜토리얼]
구조 유형 | 구조에 저장된 값 | 구조의 읽기 및 쓰기 기능 |
---|---|---|
문자열 문자열 | 문자열, 정수 또는 부동 소수점 숫자일 수 있습니다 | 전체 문자열 또는 문자열의 일부에 대해 연산을 수행합니다. 정수 또는 부동 소수점 숫자에 대해 증가 또는 감소 연산을 수행합니다. |
목록 목록 | 각각의 각 노드에는 문자열이 포함되어 있습니다. | 연결된 목록의 양쪽 끝에서 푸시 및 팝 작업을 수행하고, 값을 기반으로 단일 또는 여러 요소를 읽거나 삭제합니다. |
세트 컬렉션 | 순서가 지정되지 않은 문자열 세트가 포함되어 있습니다. | 추가, 획득, 삭제가 있는지 확인하는 기본 방법이 포함된 문자열 모음입니다. 교차점, 합집합, 차이 등의 계산도 포함됩니다. |
해시 해시 | 키-값이 포함되어 있지 않습니다. 쌍 정렬된 해시 테이블 | 단일 요소를 추가, 가져오기 및 삭제하는 메서드가 포함되어 있습니다 |
Zset 정렬된 집합 | 해시와 동일하며 문자열 멤버와 문자열 멤버 사이에 키-값 쌍을 저장하는 데 사용됩니다 | 부동 소수점 분수 순서 매핑은 점수 크기에 따라 결정됩니다. 포함 방법에는 단일 요소 추가, 획득, 삭제 및 점수 범위 또는 멤버에 따른 요소 획득이 포함됩니다. 기본 데이터 구조 |
GET | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SET | 세트 주어진 키에 저장된 값 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DEL | 지정된 키에 저장된 값 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
INCR | 키에 저장된 값을 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DECR | 키에 저장된 값을 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
INCRBY | 키에 저장된 값을 정수 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DECRBY | 키 저장 정수 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
을 뺀 값
127.0.0.1:6379> set hello world OK 127.0.0.1:6379> get hello "world" 127.0.0.1:6379> del hello (integer) 1 127.0.0.1:6379> get hello (nil) 127.0.0.1:6379> get counter "2" 127.0.0.1:6379> incr counter (integer) 3 127.0.0.1:6379> get counter "3" 127.0.0.1:6379> incrby counter 100 (integer) 103 127.0.0.1:6379> get counter "103" 127.0.0.1:6379> decr counter (integer) 102 127.0.0.1:6379> get counter "102" 로그인 후 복사
List list
리스트 구조를 사용하면 최신 메시지 대기열 기능(예: Sina Weibo의 TimeLine)을 쉽게 구현할 수 있습니다. List의 또 다른 응용 프로그램은 List의 PUSH 작업을 사용하여 작업을 List에 저장한 다음 작업자 스레드가 POP 작업을 사용하여 실행할 작업을 꺼낼 수 있는 것입니다.
127.0.0.1:6379> lpush mylist 1 2 ll ls mem (integer) 5 127.0.0.1:6379> lrange mylist 0 -1 1) "mem" 2) "ls" 3) "ll" 4) "2" 5) "1" 127.0.0.1:6379> lindex mylist -1 "1" 127.0.0.1:6379> lindex mylist 10 # index不在 mylist 的区间范围内 (nil) 로그인 후 복사
Set Collection
Redis의 컬렉션은 해시 테이블을 통해 구현되므로 추가, 삭제, 검색의 복잡성은 O(1)입니다.
127.0.0.1:6379> sadd myset ycf ycf1 xiao ycf (integer) 3 127.0.0.1:6379> smember myset 1) "xiao" 2) "ycf1" 3) "ycf" 127.0.0.1:6379> sismember myset ycf (integer) 1 로그인 후 복사
Hash hash
127.0.0.1:6379> hset user name1 ycf (integer) 1 127.0.0.1:6379> hset user email1 ycf@163.com (integer) 1 127.0.0.1:6379> hgetall user 1) "name1" 2) "ycf" 3) "email1" 4) "ycf@163.com" 127.0.0.1:6379> hget user user (nil) 127.0.0.1:6379> hget user name1 "ycf" 127.0.0.1:6379> hset user name2 xiaoycf (integer) 1 127.0.0.1:6379> hset user email2 xiaoycf@163.com (integer) 1 127.0.0.1:6379> hgetall user 1) "name1" 2) "ycf" 3) "email1" 4) "ycf@163.com" 5) "name2" 6) "xiaoycf" 7) "email2" 8) "xiaoycf@163.com" 로그인 후 복사
Zset有序集合
有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
127.0.0.1:6379> zadd myscoreset 100 ycf 90 xiaoycf (integer) 2 127.0.0.1:6379> ZRANGE myscoreset 0 -1 1) "xiaoycf" 2) "ycf" 127.0.0.1:6379> ZSCORE myscoreset ycf "100" 로그인 후 복사
更多编程相关知识,请访问:编程视频!! |
위 내용은 Redis의 5가지 기본 데이터 유형에 대해 자세히 알아보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!