Redis 에서 해시 형식의 상용 명령 소결
Redis 는 사전 구 조 를 사용 하여 키 값 이 맞 는 형식 으로 데 이 터 를 저장 하 는 것 이 며,해시 형식(hash)의 키 값 도 사전 구조 로 필드 와 필드 값 의 맵 을 저장 하지만 필드 값 은 문자열 일 뿐 다른 데이터 형식 은 지원 되 지 않 습 니 다.즉,해시 유형 은 다른 데이터 형식 을 포함 할 수 없습니다.해시 형식 키 는 최대 2^32-1 필드 를 포함 할 수 있 습 니 다.
해시 형식 을 제외 하고 Redis 의 다른 데이터 형식 역시 데이터 형식 끼 워 넣 기 를 지원 하지 않 습 니 다.예 를 들 어 집합 형식의 모든 요 소 는 문자열 일 뿐 집합 이나 해시 표 일 수 없습니다.
해시 형식 은 저장 대상 에 적합 합 니 다.대상 유형 과 ID 를 사용 하여 이름 을 만 들 고 필드 를 사용 하여 대상 의 속성 을 표시 하 며 필드 값 은 속성 값 을 저장 합 니 다.예 를 들 어 ID 가 2 인 자동차 대상 을 저장 하려 면 각각 color,name,price 라 는 세 개의 필드 를 사용 하여 자동차의 색상,이름,가격 을 저장 할 수 있다.
1.기본 명령
예 를 들 어 현재 ID 가 1 인 글 을 저장 하려 면 title,author,time,content 가 있 습 니 다.
키 는 post:1 이 고 필드 는 title,author,time,content 이 며 값 은 각각"the first post","me","2014-03-04","This is my first post."로 다음 과 같이 저 장 됩 니 다.
redis 127.0.0.1:6379> hmset post:1 title "the first post" author "JoJo" time 2016/08/25 content "this is my first post"
OK
여기 서 사용 하 는 것 은 hmset 명령 입 니 다.구체 적 으로 해시 되 어 있 는 기본 할당 명령 은 다음 과 같 습 니 다.hset key field value
#예 를 들 어 hset post:2 title"second post"hget key field
#예 를 들 어 hget post:2 title,id 가 2 인 post 의 title 값 가 져 오기hmset key field value [field value ...]
\#이 동상,대량 저장 값hmget key field [field ...]
#대량 추출,목록 획득예:
redis 127.0.0.1:6379> hmget post:1 time author
1) "2016/08/25"
2) "JoJo"
hgetall key
#key 에 대응 하 는 모든 키 목록 을 가 져 옵 니 다.예 를 들 어 보 겠 습 니 다.
redis 127.0.0.1:6379> hgetall post:1
1) "title"
2) "the first post"
3) "author"
4) "JoJo"
5) "time"
6) "2016/08/25"
7) "content"
8) "this is my first post"
2.존재 여 부 를 판단 한다.
hexists key field
1 을 되 돌려 주 는 것 이 존재 하지 않 으 면 0 을 되 돌려 줍 니 다(키 가 존재 하지 않 으 면 0 을 되 돌려 줍 니 다).3.필드 가 존재 하지 않 을 때 값 부여
hsetnx key field value
이 와hset
의 차 이 는 필드 가 존재 하면 이 명령 은 어떠한 조작 도 하지 않 는 다 는 것 이다.그러나 여기 서 하나의 차이 점 은 Redis 가 제공 하 는 이 명령 들 은 모두 원자 조작 으로 데이터 불일치 문제 가 발생 하지 않 는 다 는 것 이다.예:
redis 127.0.0.1:6379> hexists post:1 time
(integer) 1 // time
redis 127.0.0.1:6379> hsetnx post:1 time 2016/08/26
(integer) 0 // , time, 0, ,
redis 127.0.0.1:6379> hget post:1 time
"2016/08/25"
redis 127.0.0.1:6379> hsetnx post:1 age 23
(integer) 1 // age , 1, age
redis 127.0.0.1:6379> hget post:1 age
"23"
4.숫자 증가
hincrby key field number
이곳 은incry
명령 과 유사 하 다.예:
redis 127.0.0.1:6379> hincrby post:1 age 2
(integer) 25
5.필드 삭제
hdel key field [field ...]
필드 를 삭제 합 니 다.하나 이상,반환 값 은 삭 제 된 필드 의 개수 입 니 다.6.기타 명령
hkeys key
#필드 이름 가 져 오기hvals key
#필드 이름 가 져 오기예 는 다음 과 같다.
redis 127.0.0.1:6379> hkeys post:1
1) "title"
2) "author"
3) "time"
4) "content"
5) "age"
redis 127.0.0.1:6379> hvals post:1
1) "the first post"
2) "JoJo"
3) "2016/08/25"
4) "this is my first post"
5) "25"
마지막 으로 필드 수 를 가 져 오 라 는 명령 이 있 습 니 다.
hlen key
필드 의 수 를 되 돌려 줍 니 다.
redis 127.0.0.1:6379> hlen post:1
(integer) 5
총결산이상 은 레 디 스에 서 자주 사용 되 는 명령 을 해시 하 는 모든 내용 입 니 다.여러분 의 학습 이나 업무 에 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 댓 글 을 남 겨 주 십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Redis 해시에 대한 완벽한 가이드변경 가능하므로 필요에 따라 쉽게 변경하고 업데이트할 수 있습니다. Redis 해시는 구조가 평평하므로 JSON에서와 같이 여러 수준을 가질 수 없습니다. redis 해시의 명명 규칙은 hash:key 로 입력되므로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.