> 类库下载 > 其它类库 > PHP+Redis: 해시 해시 유형

PHP+Redis: 해시 해시 유형

高洛峰
풀어 주다: 2016-10-20 14:04:04
원래의
2700명이 탐색했습니다.

3. 해시 해시 유형

소개

해시 해시는 소규모 Redis 데이터베이스와 유사합니다

해시는 여러 키-값 쌍을 포함할 수 있습니다

해시의 각 키는 반복될 수 없고 서로 다르며 순서 없이 정렬됩니다.

값은 문자열 또는 숫자 값일 수 있습니다.

숫자 값의 경우 자동 증가가 가능합니다. Or 감소 연산

해시 구조

다음 구조에서 사용자는 여러 개의 서로 다른 키-값 쌍을 포함할 수 있는 키 이름을 나타냅니다

[
    "user":[
        "name1":"yanying1",
        "name2":"yanying2",
        "name3":"yanying3"
    ]
]
로그인 후 복사

작업 방법

PHP+Redis: 해시 해시 유형

데모(명령줄 + PHP 데모)

명령줄:

먼저 해시에 키-값 쌍을 추가합니다. . 성공하면 1을 반환하고, 키가 이미 존재하면 0을 반환합니다

hset hash-key sub-key1 value1 // 返回 1
로그인 후 복사

존재하지 않는 키-값 쌍을 추가합니다

hset hash-key sub-key2 value2 // 返回 1
로그인 후 복사

이때 키가 이미 존재합니다. 해시 sub-key1 및 sub-key2에서 다음으로 동일한 키 sub-key1을 해시에 추가하고 무슨 일이 일어나는지 확인합니다.

hset hash-key sub-key1 value1 // 返回 0,由于该键已经存在
로그인 후 복사

다음으로 hget을 통해 지정된 키 sub를 얻습니다. 키1.

hget hash-key sub-key1 // "value1"
로그인 후 복사

성공적으로 값을 얻었습니다. 추가된 요소를 모두 가져와서 방금 추가된 값이 무엇인지 확인하겠습니다. 결과는 다음과 같습니다. 우리는 첫 번째 결과가 첫 번째 키-값 쌍의 키이고, 두 번째 결과가 키-값 쌍의 값이라는 것을 알았습니다. 두 개가 모두 하나의 그룹입니다.

hgetall hash-key
로그인 후 복사
로그인 후 복사

키를 삭제해 보겠습니다. 해당 키가 이전에 해시에 존재했다면 삭제할 때 1이 반환되고, 그렇지 않으면 0이 반환됩니다.

"sub-key1""value1""sub-key2""value2"
로그인 후 복사

하위 키1을 다시 삭제하려고 시도한 결과 존재하지 않는 키를 삭제하면 결과가 0이라는 것을 확인했습니다.

hdel hash-key sub-key1 // 该键之前存在于散列,返回1
로그인 후 복사

모든 키-값 쌍을 다시 가져와 무엇이 남아 있는지 확인합니다.

hdel hash-key sub-key1
로그인 후 복사

결과가 2개 줄었습니다. 결국 키-값 쌍이 방금 삭제되었습니다.

hgetall hash-key
로그인 후 복사
로그인 후 복사

PHP 버전 시연

"sub-key1""value1"
로그인 후 복사
단계 하나, redis 데이터베이스 연결

먼저 해시-키 해시에 키-값 쌍을 삽입합니다. 1은 삽입이 성공했음을 의미하고, 0 요소는 이미 존재함을 의미합니다

$redis = new Redis();$redis->connect('127.0.0.1', 6379);
로그인 후 복사

동일한 키-값 쌍을 다시 삽입합니다

$redis->hset('hash-key','sub-key1','value1'); // int 1,元素插入成功,之前不存在该键
로그인 후 복사

다음 데모에서는 일부 항목을 계속 삽입합니다. 다른 값

$redis->hset('hash-key','sub-key1','value1'); // int 0,元素插入失败,该键已经存在
로그인 후 복사

다음으로 hget을 사용하여 키에 해당하는 값을 가져옵니다. sub-key2의 값을 구해 봅시다.

$redis->hset('hash-key','sub-key2','value2'); // int 0
로그인 후 복사

하나를 얻은 후 hgetall을 사용하여 방금 삽입된 모든 값을 가져와 어떤 키-값 쌍이 포함되어 있는지 확인하려고 합니다.

$redis->hget('hash-key','sub-key2'); // 'value2'
로그인 후 복사

결과는 다음과 같습니다. 완전한 키-값 배열

$redis->hgetall('hash-key');
로그인 후 복사
로그인 후 복사

모든 키-값 쌍을 본 후 키 중 하나를 삭제하려고 합니다. 이전에 해시에 키가 있으면 1이 반환되고 그렇지 않으면 0이 반환됩니다. 실패

array (size=2)  'sub-key1' => string 'value1' (length=6)  'sub-key2' => string 'value2' (length=6)
로그인 후 복사

다음으로 hgetall을 사용하여 해시에 남아 있는 모든 키-값 쌍을 확인합니다

$redis->hdel('hash-key','sub-key1'); // 该键之前存在,返回int 1
로그인 후 복사

하나의 키-값 쌍을 포함하는 배열만 반환되는 것을 확인합니다.

$redis->hdel('hash-key','sub-key1'); // 该键不存在,返回int 0
로그인 후 복사

이유는 하위키1이 방금 삭제되었기 때문입니다

$redis->hgetall('hash-key');
로그인 후 복사
로그인 후 복사

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿