Redis——String數據類型

string是redis最基本的類型,你能夠理解成與Memcached如出一轍的類型,一個key對應一個value。redis

string類型是二進制安全的。意思是redis的string能夠包含任何數據。好比jpg圖片或者序列化的對象 。mongodb

string類型是Redis最基本的數據類型,一個鍵最大能存儲512MB。安全

 

string基本命令對象

一、SET key value圖片

設置指定key的值,若是 key 已經存儲其餘值, SET 就覆寫舊值,且無視類型。字符串

在 Redis 2.6.12 之前版本, SET 命令老是返回 OK 。get

從 Redis 2.6.12 版本開始, SET 在設置操做成功完成時,才返回 OK。string

 

二、GET key_nameit

 Get 命令用於獲取指定 key 的值。若是 key 不存在,返回 nil 。若是key 儲存的值不是字符串類型,返回一個錯誤。test

 

三、GETRANGE key_name  start end

Getrange 命令用於獲取存儲在指定 key 中字符串的子字符串。字符串的截取範圍由 start 和 end 兩個偏移量決定(包括 start 和 end 在內)。返回截取獲得的子字符串。

redis 127.0.0.1:6379> SET mykey "This is my test key"
OK
redis 127.0.0.1:6379> GETRANGE mykey 0 3
"This"
redis 127.0.0.1:6379> GETRANGE mykey 0 -1
"This is my test key"

 

四、GETSET key_name value

Getset 命令用於設置指定 key 的值,並返回 key 的舊值。

返回給定 key 的舊值。 當 key 沒有舊值時,即 key 不存在時,返回 nil 。

當 key 存在但不是字符串類型時,返回一個錯誤。

redis> GETSET db mongodb    # 沒有舊值,返回 nil
(nil)

redis> GET db
"mongodb"

redis> GETSET db redis      # 返回舊值 mongodb
"mongodb"

redis> GET db
"redis"

 

五、GETBIT key_name offset

Getbit 命令用於對 key 所儲存的字符串值,獲取指定偏移量上的位(bit)。返回字符串值指定偏移量上的位(bit)。當偏移量 OFFSET 比字符串值的長度大,或者 key 不存在時,返回 0 。

# 對不存在的 key 或者不存在的 offset 進行 GETBIT, 返回 0

redis> EXISTS bit
(integer) 0

redis> GETBIT bit 10086
(integer) 0


# 對已存在的 offset 進行 GETBIT

redis> SETBIT bit 10086 1
(integer) 0

redis> GETBIT bit 10086
(integer) 1

 

六、MGET key1  key2  ...keyN

 Mget 命令返回全部(一個或多個)給定 key 的值。 若是給定的 key 裏面,有某個 key 不存在,那麼這個 key 返回特殊值 nil ,返回一個包含全部給定 key 的值的列表。

redis 127.0.0.1:6379> MGET key1 key2 someOtherKey
1) "Hello"
2) "World"
3) (nil)

 

七、SETBIT KEY_NAME OFFSET

 Setbit 命令用於對 key 所儲存的字符串值,設置或清除指定偏移量上的位(bit)。返回指定偏移量原來儲存的位。

redis> SETBIT bit 10086 1
(integer) 0

redis> GETBIT bit 10086
(integer) 1

redis> GETBIT bit 100   # bit 默認被初始化爲 0
(integer) 0

八、SETEX key seconds value

將值value關聯到key,並將key的過時時間設爲seconds(以秒爲單位),設置成功,返回OK。

redis 127.0.0.1:6379> SETEX mykey 60 redis
OK
redis 127.0.0.1:6379> TTL mykey
60
redis 127.0.0.1:6379> GET mykey
"redis

九、SETNX key value

只有在key不存在時設置key的值。設置成功,返回1,設置失敗,返回0。

 

十、SETRANGE key offset value

用value參數覆寫給定key所存儲的字符串值,從偏移offset位置開始。

 

十一、STRLEN key_name

獲取指定key所存儲的字符串的長度。當key存儲的不是字符串時,返回一個錯誤。當key不存在時,返回0.

# 獲取字符串的長度

redis> SET mykey "Hello world"
OK

redis> STRLEN mykey
(integer) 11


# 不存在的 key 長度爲 0

redis> STRLEN nonexisting
(integer) 0

 

十二、MSET key value [key value]

同時設置一個或多個key-value對,老是返回OK。

redis 127.0.0.1:6379> MSET key1 "Hello" key2 "World"
OK
redis 127.0.0.1:6379> GET key1
"Hello"
redis 127.0.0.1:6379> GET key2
1) "World"

 

1三、MSETNX key value [key value]

同時設置一個或多個key-value對,當且僅當全部給定key都不存在。

當全部 key 都成功設置,返回 1 。 若是全部給定 key 都設置失敗(至少有一個 key 已經存在),那麼返回 0 。

1四、PSETEX key milliseconds value

 Psetex 命令以毫秒爲單位設置 key 的生存時間。設置成功時返回 OK 。

redis 127.0.0.1:6379> PSETEX mykey 1000 "Hello"
OK
redis 127.0.0.1:6379> PTTL mykey
999
redis 127.0.0.1:6379> GET mykey
1) "Hello"

 

1五、INCR key_name

將key中儲存的數字值增一。

若是 key 不存在,那麼 key 的值會先被初始化爲 0 ,而後再執行 INCR 操做。若是值包含錯誤的類型,或字符串類型的值不能表示爲數字,那麼返回一個錯誤。

本操做的值限制在 64 位(bit)有符號數字表示以內。返回執行INCR命令以後key的值。

redis> SET page_view 20
OK

redis> INCR page_view
(integer) 21

redis> GET page_view    # 數字值在 Redis 中以字符串的形式保存
"21"

 

1六、INCRBY KEY_NAME INCR_AMOUNT

 Incrby 命令將 key 中儲存的數字加上指定的增量值。

若是 key 不存在,那麼 key 的值會先被初始化爲 0 ,而後再執行 INCRBY 命令。

若是值包含錯誤的類型,或字符串類型的值不能表示爲數字,那麼返回一個錯誤。

本操做的值限制在 64 位(bit)有符號數字表示以內。返回加上指定的增量值以後,key的值。

# key 存在且是數字值

redis> SET rank 50
OK

redis> INCRBY rank 20
(integer) 70

redis> GET rank
"70"


# key 不存在時

redis> EXISTS counter
(integer) 0

redis> INCRBY counter 30
(integer) 30

redis> GET counter
"30"

 

1七、INCRBYFLOAT key_name incr_amount

Incrbyfloat 命令爲 key 中所儲存的值加上指定的浮點數增量值。

若是 key 不存在,那麼 INCRBYFLOAT 會先將 key 的值設爲 0 ,再執行加法操做。

返回執行命令以後key的值。

# 值和增量都是指數符號

redis> SET mykey 314e-2
OK

redis> GET mykey                # 用 SET 設置的值能夠是指數符號
"314e-2"

redis> INCRBYFLOAT mykey 0      # 但執行 INCRBYFLOAT 以後格式會被改爲非指數符號
"3.14"

 

1八、DECR key_name

Decr 命令將 key 中儲存的數字值減一。若是 key 不存在,那麼 key 的值會先被初始化爲 0 ,而後再執行 DECR 操做。若是值包含錯誤的類型,或字符串類型的值不能表示爲數字,那麼返回一個錯誤。

本操做的值限制在 64 位(bit)有符號數字表示以內。返回命令以後key的值。

# 對存在的數字值 key 進行 DECR

redis> SET failure_times 10
OK

redis> DECR failure_times
(integer) 9


# 對不存在的 key 值進行 DECR

redis> EXISTS count
(integer) 0

redis> DECR count
(integer) -1


# 對存在但不是數值的 key 進行 DECR

redis> SET company YOUR_CODE_SUCKS.LLC
OK

redis> DECR company
(error) ERR value is not an integer or out of range

 

1九、DECRBY  KEY_NAME DECREMENT_AMOUNT

Decrby 命令將 key 所儲存的值減去指定的減量值。

若是 key 不存在,那麼 key 的值會先被初始化爲 0 ,而後再執行 DECRBY 操做。

若是值包含錯誤的類型,或字符串類型的值不能表示爲數字,那麼返回一個錯誤。

本操做的值限制在 64 位(bit)有符號數字表示以內。返回減去指定減量值以後,key的值。

# 對已存在的 key 進行 DECRBY

redis> SET count 100
OK

redis> DECRBY count 20
(integer) 80


# 對不存在的 key 進行DECRBY

redis> EXISTS pages
(integer) 0

redis> DECRBY pages 10
(integer) -10

 

20、APPEND KEY_NAME NEW_VALUE

Append 命令用於爲指定的 key 追加值。

若是 key 已經存在而且是一個字符串, APPEND 命令將 value 追加到 key 原來的值的末尾。

若是 key 不存在, APPEND 就簡單地將給定 key 設爲 value ,就像執行 SET key value 同樣。

返回追加指定值以後,key中字符串的長度。

# 對不存在的 key 執行 APPEND

redis> EXISTS myphone               # 確保 myphone 不存在
(integer) 0

redis> APPEND myphone "nokia"       # 對不存在的 key 進行 APPEND ,等同於 SET myphone "nokia"
(integer) 5                         # 字符長度


# 對已存在的字符串進行 APPEND

redis> APPEND myphone " - 1110"     # 長度從 5 個字符增長到 12 個字符
(integer) 12

redis> GET myphone
"nokia - 1110"
相關文章
相關標籤/搜索