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"