>  Q&A  >  본문

如何删除redis的hash结构中第一个域?

例如:

user:1 name "zhangsan"
user:1 num "001"

user:2 name "lisi"
user:2 num "002"

user:3 name "wang"
user:3 num "003"

在不指定user:1的情况下删除第一条域user:1。
其实需求类似list中的lpop,但是还是现在需要hash这种数据结构来记录id。

PHP中文网PHP中文网2736일 전725

모든 응답(3)나는 대답할 것이다

  • 大家讲道理

    大家讲道理2017-04-24 09:14:30

    해시 구조에는 순서가 없으므로 첫 번째 항목에 대해 아무것도 모릅니다. 첫 번째 항목을 어떻게 삭제했습니까? 첫 번째 항목은 삽입한 순서의 첫 번째 항목일 뿐입니다. 죄송합니다. 해시는 삽입 순서에 따라 정렬되지 않으므로 해시를 순회하더라도 원하는 결과를 얻지 못할 수 있습니다.
    순회 순서가 삽입 순서와 일치하도록 하려면 목록을 사용할 수 있습니다.
    두 가지 구조를 통해 귀하의 요구를 실현할 수 있습니다. 하나의 목록은 수집 순서를 유지하는 데 사용되고 다른 하나는 k-v 데이터를 저장하는 데 사용됩니다. 삭제 시 목록에서 데이터를 팝업한 다음 그에 따라 삭제합니다. 해시의 키입니다.

    회신하다
    0
  • PHPz

    PHPz2017-04-24 09:14:30

    글쎄, hKeys를 사용하여 모든 키 값을 검색한 다음 애플리케이션 계층에서 첫 번째 키를 검색한 다음 hget과 hdel을 동시에 검색할 수 있습니다.

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-04-24 09:14:30

    해시 연결 목록, //단일 항목 삭제
    $redis->hDel('hashkey', 'key1');

    //전체 해시 삭제
    $redis->del('hashkey');

    redis 키를 삭제하려면 del 메소드를 사용하세요. 문자열, 해시, 목록 등 RPOP도 동일하게 꺼낼 수 있습니다.

    회신하다
    0
  • 취소회신하다