찾다

hash主要操作函数

Jun 07, 2016 pm 02:53 PM
hash기본기능작동하다

hash主要操作函数 hash是一些列key value(field value)的映射表。常常用其存储一些对象实例。相对于把一个对象的各个字段存储为string,存储为hash会占用更少的内存。为什么会更省内存呢?需要搞清楚两个配置(hash-max-zipmap-entries和hash-max-zipmap-v

hash主要操作函数

 

hash是一些列key value(field value)的映射表。常常用其存储一些对象实例。相对于把一个对象的各个字段存储为string,存储为hash会占用更少的内存。为什么会更省内存呢?需要搞清楚两个配置(hash-max-zipmap-entries和hash-max-zipmap-value)的含义,配置的详细介绍,我打算放在最后的配置优化环节讲。

1)新增  www.2cto.com  

 

a)hset

 

语法:hset key field value

 

解释:设置hash表key中的field的值。如果hash表不存在,则创建,并执行设置field的值,如果hash表存在,值field的值覆盖或新增

 

[plain] 

[root@xsf001 ~]# redis-cli   

redis 127.0.0.1:6379> hset user.1 name zhangsan    #设置key user.1 name域 的值  

(integer) 1  

redis 127.0.0.1:6379> hset user.1 age 45 #设置age域  

(integer) 1  

redis 127.0.0.1:6379> hset user.1 tech lisi  

(integer) 1  

 b)hmset

语法:hash key field value[key value]

 

解释:批量设置hash表key的域

  www.2cto.com  

[plain] 

redis 127.0.0.1:6379> hmset user.2 name niuer age 34 #同时设置name 和age域  

OK  

 c)hsetnx

语法:hsetnx key field value

 

解释:仅仅当field域不存在时,设置hash表field的值

 

[plain] 

redis 127.0.0.1:6379> hsetnx user.1 name lisi  #由于name域已经设置过,所以返回0  

(integer) 0  

redis 127.0.0.1:6379> hsetnx user.1 fri 5    

(integer) 1   #fri域没有设置过,所以hset并返回1  

 2)查询

a)hget

 

语法:hget key field

 

解释:获取哈希表key的field值

 

[plain] 

redis 127.0.0.1:6379> hget user.1 name  #存在的hash表及域  

"zhangsan"  

redis 127.0.0.1:6379> hget user.3 name  #不存在的hash表  

(nil)  

redis 127.0.0.1:6379> hget user.1 bb  #不存在的域  

(nil)  

 b)hmget

语法:hmget key field[field]

 

解释:批量获取hash表的filed

 

[plain] 

redis 127.0.0.1:6379> hmget user.1 name age fri tech  

1) "zhangsan"  

2) "45"  

3) "5"  

4) "lisi"  

redis 127.0.0.1:6379> hmget user.1 name age fri tech nofield #存在hash表中包含不存在的域nofield  

1) "zhangsan"  

2) "45"  

3) "5"  

4) "lisi"  

5) (nil)  

redis 127.0.0.1:6379> hmget user.3 name age fri #不存在的hash表  

1) (nil)  

2) (nil)  

3) (nil)  

 c)hgetall

语法:hgetall key

 

解释:获取hash表的所有域值

 

[plain] 

redis 127.0.0.1:6379> hgetall user.2  #存在的hash表  

1) "name"   #域  

2) "niuer"  #域name的值  

3) "age"    #域  

4) "34"     #域age的值  

redis 127.0.0.1:6379> hgetall user.3  #不存在的hansh表  

(empty list or set)  

   

d)hexists

语法:hexists key field

 

解释:判断hash表中是否存在某个域

 

[plain] 

redis 127.0.0.1:6379> hexists user.1 name  #存在  

(integer) 1  

redis 127.0.0.1:6379> hexists user.1 nofield  #不存在  

(integer) 0  

redis 127.0.0.1:6379> hexists use1 nofield #hash表不存在  

(integer) 0  

 

e)hkeys 

 

 语法:hkeys key

 

解释:获取hash表的所有域

 

[plain] 

redis 127.0.0.1:6379> hkeys user.1  #存在的hash表  

1) "name"  

2) "age"  

3) "tech"  

4) "fri"  

redis 127.0.0.1:6379> hkeys user.4 #不存在的hash  

(empty list or set)  

 

f)hvals

语法:hvals key

 

解释:获取hash表的所有域值

 

[plain] 

redis 127.0.0.1:6379> hvals user.1  #存在hash  

1) "zhangsan"  

2) "45"  

3) "lisi"  

4) "5"   

redis 127.0.0.1:6379> hvals user.4 #不存在  

(empty list or set)  

 3)修改

语法:hincrby key field increment

 

解释:hash表field域的数值增加步长increment,如果increment是负值,则是递减。如果域不存在,初始值视为0

 

[plain] 

redis 127.0.0.1:6379> hincrby user.1 age 2  #增加2  

(integer) 47  

redis 127.0.0.1:6379> hincrby user.1 age -3  #减少3  

(integer) 44  

redis 127.0.0.1:6379> hincrby user.1 age2 -3 #域不能存在,初始值是0  

(integer) -3  

 

4)删除

语法:hdel key field[field]

 

解释:删除hash的域,如果指定多个field,则删除多个

 

[plain] 

redis 127.0.0.1:6379> hkeys user.1  

1) "name"  

2) "age"  

3) "tech"  

4) "fri"  

5) "age2"  

redis 127.0.0.1:6379> hdel user.1 age2  #删除一个域  

(integer) 1  

redis 127.0.0.1:6379> hkeys user.1  

1) "name"  

2) "age"  

3) "tech"  

4) "fri"  

redis 127.0.0.1:6379> hdel user.1 fri tech #删除2个域  

(integer) 2  

redis 127.0.0.1:6379> hkeys user.1  

1) "name"  

2) "age"  

redis 127.0.0.1:6379> hdel user.1 bb #删除一个不存在的域   

(integer) 0 #返回0  

 

5)其他

语法:hlen key

 

解释:获取hash的域数量

 

[plain] 

redis 127.0.0.1:6379> hkeys user.1  

1) "name"  

2) "age"  

redis 127.0.0.1:6379> hlen user.1 #存在2个域  

(integer) 2  

redis 127.0.0.1:6379> hlen user.4  #不存在的hash  

(integer) 0  

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
MySQL : 초보자가 마스터하는 필수 기술MySQL : 초보자가 마스터하는 필수 기술Apr 18, 2025 am 12:24 AM

MySQL은 초보자가 데이터베이스 기술을 배우는 데 적합합니다. 1. MySQL 서버 및 클라이언트 도구를 설치하십시오. 2. SELECT와 같은 기본 SQL 쿼리를 이해하십시오. 3. 마스터 데이터 작업 : 데이터를 만들고, 삽입, 업데이트 및 삭제합니다. 4. 고급 기술 배우기 : 하위 쿼리 및 창 함수. 5. 디버깅 및 최적화 : 구문 확인, 인덱스 사용, 선택*을 피하고 제한을 사용하십시오.

MySQL : 구조화 된 데이터 및 관계형 데이터베이스MySQL : 구조화 된 데이터 및 관계형 데이터베이스Apr 18, 2025 am 12:22 AM

MySQL은 테이블 구조 및 SQL 쿼리를 통해 구조화 된 데이터를 효율적으로 관리하고 외래 키를 통해 테이블 ​​간 관계를 구현합니다. 1. 테이블을 만들 때 데이터 형식을 정의하고 입력하십시오. 2. 외래 키를 사용하여 테이블 간의 관계를 설정하십시오. 3. 인덱싱 및 쿼리 최적화를 통해 성능을 향상시킵니다. 4. 데이터 보안 및 성능 최적화를 보장하기 위해 데이터베이스를 정기적으로 백업 및 모니터링합니다.

MySQL : 주요 기능 및 기능이 설명되었습니다MySQL : 주요 기능 및 기능이 설명되었습니다Apr 18, 2025 am 12:17 AM

MySQL은 웹 개발에 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 주요 기능에는 다음이 포함됩니다. 1. 다른 시나리오에 적합한 InnoDB 및 MyISAM과 같은 여러 스토리지 엔진을 지원합니다. 2.로드 밸런싱 및 데이터 백업을 용이하게하기 위해 마스터 슬레이브 복제 기능을 제공합니다. 3. 쿼리 최적화 및 색인 사용을 통해 쿼리 효율성을 향상시킵니다.

SQL의 목적 : MySQL 데이터베이스와 상호 작용합니다SQL의 목적 : MySQL 데이터베이스와 상호 작용합니다Apr 18, 2025 am 12:12 AM

SQL은 MySQL 데이터베이스와 상호 작용하여 데이터 첨가, 삭제, 수정, 검사 및 데이터베이스 설계를 실현하는 데 사용됩니다. 1) SQL은 Select, Insert, Update, Delete 문을 통해 데이터 작업을 수행합니다. 2) 데이터베이스 설계 및 관리에 대한 생성, 변경, 삭제 문을 사용하십시오. 3) 복잡한 쿼리 및 데이터 분석은 SQL을 통해 구현되어 비즈니스 의사 결정 효율성을 향상시킵니다.

초보자를위한 MySQL : 데이터베이스 관리를 시작합니다초보자를위한 MySQL : 데이터베이스 관리를 시작합니다Apr 18, 2025 am 12:10 AM

MySQL의 기본 작업에는 데이터베이스, 테이블 작성 및 SQL을 사용하여 데이터에서 CRUD 작업을 수행하는 것이 포함됩니다. 1. 데이터베이스 생성 : createAbasemy_first_db; 2. 테이블 만들기 : CreateTableBooks (idintauto_incrementprimarykey, titlevarchar (100) notnull, authorvarchar (100) notnull, published_yearint); 3. 데이터 삽입 : InsertIntobooks (Title, Author, Published_year) VA

MySQL의 역할 : 웹 응용 프로그램의 데이터베이스MySQL의 역할 : 웹 응용 프로그램의 데이터베이스Apr 17, 2025 am 12:23 AM

웹 응용 프로그램에서 MySQL의 주요 역할은 데이터를 저장하고 관리하는 것입니다. 1. MySQL은 사용자 정보, 제품 카탈로그, 트랜잭션 레코드 및 기타 데이터를 효율적으로 처리합니다. 2. SQL 쿼리를 통해 개발자는 데이터베이스에서 정보를 추출하여 동적 컨텐츠를 생성 할 수 있습니다. 3.mysql은 클라이언트-서버 모델을 기반으로 작동하여 허용 가능한 쿼리 속도를 보장합니다.

MySQL : 첫 번째 데이터베이스 구축MySQL : 첫 번째 데이터베이스 구축Apr 17, 2025 am 12:22 AM

MySQL 데이터베이스를 구축하는 단계에는 다음이 포함됩니다. 1. 데이터베이스 및 테이블 작성, 2. 데이터 삽입 및 3. 쿼리를 수행하십시오. 먼저 CreateAbase 및 CreateTable 문을 사용하여 데이터베이스 및 테이블을 작성한 다음 InsertInto 문을 사용하여 데이터를 삽입 한 다음 최종적으로 SELECT 문을 사용하여 데이터를 쿼리하십시오.

MySQL : 데이터 저장에 대한 초보자 친화적 인 접근 방식MySQL : 데이터 저장에 대한 초보자 친화적 인 접근 방식Apr 17, 2025 am 12:21 AM

MySQL은 사용하기 쉽고 강력하기 때문에 초보자에게 적합합니다. 1.MySQL은 관계형 데이터베이스이며 CRUD 작업에 SQL을 사용합니다. 2. 설치가 간단하고 루트 사용자 비밀번호를 구성해야합니다. 3. 삽입, 업데이트, 삭제 및 선택하여 데이터 작업을 수행하십시오. 4. Orderby, Where and Join은 복잡한 쿼리에 사용될 수 있습니다. 5. 디버깅은 구문을 확인하고 쿼리를 분석하기 위해 설명을 사용해야합니다. 6. 최적화 제안에는 인덱스 사용, 올바른 데이터 유형 선택 및 우수한 프로그래밍 습관이 포함됩니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경