歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> redis命令行操作學習

redis命令行操作學習

日期:2017/3/1 12:15:41   编辑:關於Linux
redis命令學習

  Redis 的vaule

  redis 提供五種數據類型:string,hash,list,set 及sorted set。

  hash 類型

  hash 是一個string 類型的field 和value 的映射表。添加,刪除操作都是O(1)(平均)。

  hash 特別適合用於存儲對象。相對於將對象的每個字段存成單個string 類型。將一個對象

  存儲在hash 類型中會占用更少的內存,並且可以更方便的存取整個對象。省內存的原因是

  新建一個hash 對象時開始是用zipmap(又稱為small hash)來存儲的。這個zipmap 其實並

  不是hash table,但是zipmap 相比正常的hash 實現可以節省不少hash 本身需要的一些元

  數據存儲開銷。盡管zipmap 的添加,刪除,查找都是O(n),但是由於一般對象的field

  數量都不太多。所以使用zipmap 也是很快的,也就是說添加刪除平均還是O(1)。如果field

  或者value 的大小超出一定限制後,redis 會在內部自動將zipmap 替換成正常的hash 實現.

  這個限制可以在配置文件中指定。

  hash-max-zipmap-entries 64 #配置字段最多64 個

  hash-max-zipmap-value 512 #配置value 最大為512 字節

  hash 類型數據操作指令簡介

  hset key field value 設置hash field為指定值,如果key不存在,則創建

  hget key field 獲取指定的hash field。

  hmget key filed1....fieldN 獲取全部指定的hash filed。

  hmset key filed1 value1 ...... filedN valueN 同時設置hash的多個field。

  hincrby key field integer 將指定的hash filed 加上指定值。成功返回hash filed 變更後的

  值。

  hexists key field 檢測指定field是否存在。

  hdel key field 刪除指定的hash field。

  hlen key 返回指定hash的field 數量。

  5

  hkeys key 返回hash 的所有field。

  hvals key 返回hash的所有value。

  hgetall 返回hash的所有filed和value

  1 hset命令

  對hash中的字段賦值,如果不存在則創建否則覆蓋

  返回值:被創建返回1,被更新返回0

  例子:

  redis 127.0.0.1:6379> hset debughash field1 "hello"

  (integer) 1

  redis 127.0.0.1:6379> hget debughash field1

  "hello"

  redis 127.0.0.1:6379> hset debughash field1 "world"

  (integer) 0

  redis 127.0.0.1:6379> hget debughash field1

  "world"

  redis 127.0.0.1:6379>

  2 hget命令

  獲取field對於的value

  返回值:存在返回value值,否則返回 nil

  例子:

  redis 127.0.0.1:6379> hset debughash field2 "hello"

  (integer) 1

  redis 127.0.0.1:6379> hget debughash field2

  "hello"

  redis 127.0.0.1:6379> hget debughash field3

  (nil)

  3 hexists

  判斷field是否存在

  返回值:存在返回1,否則返回0

  例子:

  redis 127.0.0.1:6379> hexists debughash field2

  (integer) 1

  redis 127.0.0.1:6379> hexists debughash field3

  (integer) 0

  4 hdel

  刪除field

  返回值:返回刪除的數量

  例子:

  redis 127.0.0.1:6379> hdel debughash field2

  (integer) 1

  redis 127.0.0.1:6379> hdel debughash field3

  (integer) 0

  redis 127.0.0.1:6379> hget debughash field3

  (nil)

  5 hkeys

  返回hash下包含的field

  例子:

  redis 127.0.0.1:6379> hkeys debughash

  1) "field1"

  redis 127.0.0.1:6379> hset debughash field2 "word"

  (integer) 1

  redis 127.0.0.1:6379> HKEYS debughash

  1) "field1"

  2) "field2"

  redis 127.0.0.1:6379> HKEYS debughash field2

  (error) ERR wrong number of arguments for 'hkeys' command

  redis 127.0.0.1:6379> HKEYS debughash

  1) "field1"

  2) "field2"

  redis 127.0.0.1:6379>

  6 hlen

  返回hash下含有field的數量

  例子:

  redis 127.0.0.1:6379> hlen debughash

  (integer) 2

  7 hmset

  設置多個field值,存在覆蓋,否則創建

  例子:

  redis 127.0.0.1:6379> hmset testhash field1 "hello" field2 "world"

  OK

  redis 127.0.0.1:6379> hget testhash field1

  "hello"

  redis 127.0.0.1:6379> hget testhash field2

  "world"

  8 hmget

  獲取多個field的值

  例子:

  redis 127.0.0.1:6379> hmget testhash field1 field2 field3

  1) "hello"

  2) "world"

  3) (nil)

  9 hgetall

  獲取hash下所有field與value

  例子:

  redis 127.0.0.1:6379> hgetall testhash

  1) "field1"

  2) "hello"

  3) "field2"

  4) "world"

  10 hvals

  獲取value值

  例子:

  redis 127.0.0.1:6379> hvals testhash

  1) "hello"

  2) "world"

  11 hsetnx

  只有field不存在的時候,設置value

  返回值:如果創建成功返回1,若存在返回0

  例子:

  redis 127.0.0.1:6379> hgetall testhash

  1) "field1"

  2) "hello"

  3) "field2"

  4) "world"

  redis 127.0.0.1:6379> hsetnx testhash field3 "00000" (integer) 1

  redis 127.0.0.1:6379> hgetall testhash WWW.dnjishu.com

  1) "field1"

  2) "hello"

  3) "field2"

  4) "world"

  5) "field3" 6) "00000" redis 127.0.0.1:6379>

  12 hincrby

  按整數自增,如果不存在則field賦值為value,如果不是數值型的字符串,返回error

  返回值:返回自增後的值

  例子:

  redis 127.0.0.1:6379> hgetall testhash

  1) "field1"

  2) "hello"

  3) "field2"

  4) "world"

  5) "field3" 6) "00000" redis 127.0.0.1:6379> hincrby testhash field4 5 (integer) 5 redis 127.0.0.1:6379> hicrby testhash field4 5 (error) ERR unknown command 'hicrby' redis 127.0.0.1:6379> hincrby testhash field4 5 (integer) 10 redis 127.0.0.1:6379> hincrby testhash field4 -11 (integer) -1 redis 127.0.0.1:6379> hset testhash field5 "yy" (integer) 1 redis 127.0.0.1:6379> hincrby testhash field5 -11 (error) ERR hash value is not an integer redis 127.0.0.1:6379> 13 hincrbyfloat

  按浮點數自增

Copyright © Linux教程網 All Rights Reserved