레 디 스 실전 - 독서 노트 - 제1장

7344 단어
《 레 디 스 실전 》 -- 독서 노트
기간: 2017 년 10 월 02 일 01: 13: 48
제 1 장
모두 다섯 가지 구조 가 있다
① String ② List ③ SET ④ HASH ⑤ ZSET (질서 있 는 집합)
① 문자열 (문자열)
데이터 구조:
+--hello(  )----string(    )-----+
|   world( )                        |
|                                    |
+---------------+--------------------+

그 중 에는 다음 과 같은 조작 명령 이 있다.
명령 하 다.
행위.
set
주어진 키 에 저 장 된 값 가 져 오기
get
주어진 키 에 저 장 된 값 설정
del
주어진 키 에 저 장 된 값 삭제 (이 명령 은 모든 형식 에 사용 할 수 있 습 니 다)
② 리스트 (리스트)
하나의 목록 구 조 는 여러 문자열 을 질서 있 게 저장 할 수 있다.
+--list-key(  )---------list---+
|item                           |
|item2                          |
|item                           |
|                               |
+-------------------------------+

조작 방법
명령 하 다.
행위.
rpush
주어진 값 을 목록 의 오른쪽 끝 에 밀어 넣 습 니 다.
lrange
주어진 범위 에 있 는 목록 의 모든 값 가 져 오기
lindex
위치 지정 에 있 는 단일 요소 목록 가 져 오기
lpop
목록 의 왼쪽 끝 에서 값 을 팝 업 하고 팝 업 된 값 을 되 돌려 줍 니 다.
③ 설정 (집합)
redis 의 집합 과 목록 은 여러 문자열 을 저장 할 수 있 습 니 다. 그들 사이 의 차이 점 은 목록 에 같은 문자열 을 여러 개 저장 할 수 있 고 집합 은 해시 표를 사용 하여 자신 이 저장 한 모든 문자열 이 다 릅 니 다. (이 산 목록 은 키 만 있 지만 키 와 연 결 된 값 은 없습니다)
데이터 구조
+--list-key(  )---------set---+
|item                           |
|item2                          |
|item3                          |
|                               |
+-------------------------------+

중복 불가.
명령 하 다.
행위.
sadd
주어진 요 소 를 집합 에 추가 합 니 다.
smembers
집합 에 포 함 된 모든 요 소 를 되 돌려 줍 니 다.
sismembers
주어진 요소 가 집합 에 존재 하 는 지 확인 합 니 다.
srem
주어진 요소 가 집합 에 존재 한다 면 이 요 소 를 제거 합 니 다.
④ Hash (해시, 즉 자바 의 맵)
Redis 의 해시 에는 여러 키 쌍 의 맵 을 저장 할 수 있 습 니 다.문자열 과 마찬가지 로 해시 에 저 장 된 값 은 문자열 일 수도 있 고 숫자 값 일 수도 있 으 며 사용 자 는 해시 에 저 장 된 숫자 값 에 대해 자체 증가 작업 이나 자체 감소 작업 을 수행 할 수 있 습 니 다.
데이터 구조:
+--hash-key------------------hash---+
|sub-key1       |   value1          |
|sub-key2       |   value2          |
|sub-key3       |   value3          |
|               |                   |
+---------------+-------------------+

명령 하 다.
행위.
hset
해시 에 주어진 키 쌍 을 연결 합 니 다.
hget
지정 한 해시 키 의 값 가 져 오기
hgetall
해시 에 포 함 된 모든 키 쌍 가 져 오기
hdel
주어진 키 가 해시 에 존재 한다 면 이 키 를 제거 합 니 다.
⑤ Zset (질서 있 는 집합)
질서 있 는 집합 은 해시 와 마찬가지 로 키 쌍 을 저장 하 는 데 사 용 됩 니 다. 질서 있 는 집합 키 는 구성원 (member) 이 라 고 부 르 며 각 구성원 은 각각 다 릅 니 다.질서 있 게 집합 하 는 값 은 점수 (score) 라 고 불 리 며, 분 가 는 부동 소수점 이 어야 합 니 다.질서 있 는 집합 은 redis 에서 유일 하 게 구성원 이 요 소 를 방문 할 수 있 고 가치 와 가치 의 배열 순서에 따라 요 소 를 방문 할 수 있 는 구조 이다.
데이터 구조:
+--zset-key--------zset-+
|member1        |   728 |
|member2        |   982 |
|               |       |
+---------------+-------+

명령 하 다.
행위.
zadd
주어진 값 을 가 진 구성원 을 질서 있 는 집합 에 추가 합 니 다.
zrange
요소 가 질서 있 게 배열 되 어 있 는 위치 에 따라 질서 있 는 집합 에서 여러 요 소 를 가 져 옵 니 다.
zrangebyscore
주어진 값 범위 내 에 있 는 모든 요 소 를 질서 있 게 집합 합 니 다.
zrem
주어진 구성원 이 질서 있 는 집합 에 존재 한다 면 이 구성원 을 제거 합 니 다.
수확 1. redis 에서 원자 성 자체 증가 또는 자체 감 소 를 실현 합 니 다.
예 를 들 어 하나의 Map 에서 문장 article: 1 로 가정 하면 하나의 속성 은 votes (사용자 투표 수) 입 니 다.이때 사용 자 는 그 에 게 한 표를 던 졌 다.그러면 나 는 hincrby 함 수 를 사용 하여 이 필드 를 하나 추가 할 수 있다.
+--article:1---------------------hash---+   +--article:1---------------------hash---+
|title          |   Go to statement     |   |title          |   Go to statement     |
|               |   considered harmful  |   |               |   considered harmful  |
|link           |   http://goo.gl/kZUSu |   |link           |   http://goo.gl/kZUSu |
|poster         |   user:83271          |   |poster         |   user:83271          |
|time           |   1331382699.33       |   |time           |   1331382699.33       |
|votes          |   528                 |==>|votes          |   529                 |
|               |                       |   |               |                       |
+---------------+-----------------------+   +---------------+-----------------------+
conn.hincrby('article:1','votes',1)

그리고 우 리 는 이 필드 를 redis 에서 꺼 낼 필요 도 없고 + 1 의 조작 을 다시 실행 할 필요 도 없고 업무 의 원자 성 을 확보 할 필요 도 없습니다. 함수 자체 가 업무 의 원자 성 을 보장 하기 때 문 입 니 다.votes 즉 변 529마찬가지 로 질서 있 는 집합 에서 우 리 는 특정한 질서 있 는 집합 중의 특정한 요소 의 score 에 대해 추가 작업 을 수행 해 야 한다. 마찬가지 로 다른 유사 한 방법 을 호출 할 수 있다.
+--score:--------------------zset---+           +--score:--------------------zset---+
|article:1      |   1332164063.49   | =========>|article:1      |   1332164495.49   |
|articel:100    |   1332174713.47   |           |articel:100    |   1332174713.47   |
|···            |                ···|           |···            |                ···|
+---------------+-------------------+           +---------------+-------------------+
conn.zincrby('score:','article:1',432)

이렇게 해서 우 리 는 score: 이 질서 있 는 집합 중의 article:1 대상 의 score 에 대해 432 의 가중치 를 증가 시 켰 다.
수확 2. 일회 성 할당 맵 함수 - hmset
우 리 는 일반적으로 맵 을 조작 할 때 모두 사용한다 put.그러나 redis 의 hash 를 여러 번 put 하면 성능 도 낭비 하고 시간 도 낭비 합 니 다.따라서 만약 우리 가 redis 중의 hash 에 대해 키 값 을 입력 해 야 한다 면 hmset 함 수 를 사용 할 수 있 습 니 다.
conn.hmset('article:22',{
  'title':title,
  'link':link,
  'poster':poster,
  'time':now,
  'votes':1
})

상기 코드: article:1 에 대한 각 속성 값 초기 화 를 실 현 했 습 니 다.
즉:
+--article:22--------hash---+
|title          |   title   |
|link           |   link    |
|poster         |   poster  |
|time           |   now     |
|votes          |   1       |
|               |           |
+---------------+-----------+

수확 3. 집합 과 질서 집합
첫 번 째 set 집합 이름 이 groups:programming 라 고 가정 하면 그 안에 저 장 된 것 은 문장의 분류 이다. 예 를 들 어 과학기술 분야 의 문장 세 편 이다.
두 번 째 질서 있 는 집합 이름 은 score: 이 고 그 안에 저 장 된 것 은 모든 문장의 평 점 이다.
+--groups:programming-----set---+   +--score:----------------zset-------+
| article:92617                 |   |article:83729  |   1330425826.28   |
| article:100408                |   |article:92617  |   1331147511.67   |
| article:83729                 |   |article:100635 |   1332164063.49   |
|                               |   |article:100408 |   1332174713.47   |
+-------------------------------|   |article:100716 |   1332225027.26   |
                                    |···            |               ··· |
                                    |               |                   |
                                    +---------------+-------------------+

zinterstore 작업 을 수행 하고 있 습 니 다.
conn.zinterstore('score:programming', ['groups:programming','score:'], aggregate=max)

이렇게 하면 좌 련 은 새로운 zset 이름 score:programming 을 얻 을 수 있다.
+--score:programming--------zset---+
|article:83729  |   1330425826.28   |
|article:92617  |   1331147511.67   |
|article:100408 |   1332174713.47   |
|               |                   |
+---------------+-------------------+

이 를 통 해 좌 련 의 효 과 를 실현 하고 지 정 된 글 의 그룹 이 이 글 들 을 보 는 평 점 을 실현 했다.

좋은 웹페이지 즐겨찾기