命令 | 語法 | 概述 | 返回值 |
Redis SET 命令 | set key value | 設置指定 key 的值 | SET 在設置操做成功完成時,才返回 OK |
Redis Get 命令 | get key | 獲取指定 key 的值。 | 返回 key 的值,若是 key 不存在時,返回 nil。 若是 key 不是字符串類型,那麼返回一個錯誤。html |
Redis Getrange 命令 | getrange key start end | 返回 key 中字符串值的子字符 | 截取獲得的子字符串 |
Redis Getset 命令 | getset key value | 將給定 key 的值設爲 value ,並返回 key 的舊值(old value)。 | 返回給定 key 的舊值。 當 key 沒有舊值時,即 key 不存在時,返回 nil 。 |
Redis Getbit 命令 | getbit key offset | 對 key 所儲存的字符串值,獲取指定偏移量上的位(bit)。 | 字符串值指定偏移量上的位(bit)。 |
Redis Mget 命令 | mget key [key ...] | 獲取全部(一個或多個)給定 key 的值。 | 返回 一個包含全部給定 key 的值的列表。 |
Redis Setbit 命令 | setbit key offset value | 對 key 所儲存的字符串值,設置或清除指定偏移量上的位(bit)。 | 指定偏移量原來儲存的位。 |
Redis Setex 命令 | setex key seconds value | 將值 value 關聯到 key ,並將 key 的過時時間設爲 seconds (以秒爲單位)。 | 設置成功時返回 OK |
Redis Setnx 命令 | setnx key value | 只有在 key 不存在時設置 key 的值。 | 設置成功,返回 1 。 設置失敗,返回 0 |
Redis Setrange 命令 | setrange key offset value | 用 value 參數覆寫給定 key 所儲存的字符串值,從偏移量 offset 開始。 | 被修改後的字符串長度。 |
Redis Strlen 命令 | strlen key | 返回 key 所儲存的字符串值的長度。 | 字符串值的長度。 當 key 不存在時,返回 0 |
Redis Mset 命令 | mset key value [key value ...] | 同時設置一個或多個 key-value 對。 | 設置成功返回ok |
Redis Msetnx 命令 | msetnx key value [key value ...] | 同時設置一個或多個 key-value 對,當且僅當全部給定 key 都不存在。 | 當全部 key 都成功設置,返回 1 。 若是全部給定 key 都設置失敗(至少有一個 key 已經存在),那麼返回 0 |
Redis Psetex 命令 | psetex key milliseconds value | 這個命令和 SETEX 命令類似,但它以毫秒爲單位設置 key 的生存時間,而不是像 SETEX 命令那樣,以秒爲單位。 | 設置成功時返回 OK |
Redis Incr 命令 | incr key | 將 key 中儲存的數字值增一 | 當key的值數字時返回執行 INCR 命令以後 key 的值。key的值不爲數字返回錯誤 |
Redis Incrby 命令 | incrby key increment | 將 key 所儲存的值加上給定的增量值(increment) | 加上指定的增量值以後, key 的值。若是key不存在,key的值初始化爲0在加上增量app |
Redis Incrbyfloat 命令 | incrbyfloat key increment | 將 key 所儲存的值加上給定的浮點增量值(increment | 執行命令以後 key 的值。若是key不存在,key的值初始化爲0在加上增量 |
Redis Decr 命令 | decr key | 將 key 中儲存的數字值減一。 | 當key的值數字時返回執行 INCR 命令以後 key 的值。key的值不爲數字返回錯誤 |
Redis Decrby 命令 | decrby key decrement | key 所儲存的值減去給定的減量值(decrement) | 減去指定減量值以後, key 的值。若是key不存在,key的值初始化爲0在減上減量 |
Redis Append 命令 | append key value | 若是 key 已經存在而且是一個字符串, APPEND 命令將指定的 value 追加到該 key 原來值(value)的末尾。 | 追加指定值以後, key 中字符串的長度。若是 key 不存在, APPEND 就簡單地將給定 key 設爲 value 。 |
# -*- coding: utf-8 -*- import redis
# 鏈接本地redis r = redis.Redis(host="127.0.0.1",port=6379)
1.SET 命令用於設置給定 key 的值。若是 key 已經存儲其餘值, SET 就覆寫舊值,且無視類型。
print(r.set('123','123')) # 插入成功後返回True
print(r.set('123','[123,dffd]')) # 插入成功後返回True
2. Get 命令用於獲取指定 key 的值。若是 key 不存在,返回 None 。若是key 儲存的值不是字符串類型,返回一個錯誤。
print(r.get('123')) # 返回的結果是[123,dffd]
print(r.get('1234')) # 返回的結果是 None
3. Getrange 命令用於獲取存儲在指定 key 中字符串的子字符串。字符串的截取範圍由 start 和 end 兩個偏移量決定(包括 start 和 end 在內)。
print(r.set('getrange','wo shi hao ren '))
print(r.getrange('getrange',2,4)) # 返回的結果是sh
print(r.getrange('getrange',2,6)) # 返回的結果是shi
print(r.getrange('getrange',2,10)) # 返回的結果是shi hao
4.Getset 命令用於設置指定 key 的值,並返回 key 舊的值,當 key 存在但不是字符串類型時,返回一個錯誤。
print(r.getset('getrange','hello word')) # 返回的結果是wo shi hao ren
print(r.getset('getrange11','hello word')) # 當鍵不存在的時候,返回的結果是None
5.Getbit 命令用於對 key 所儲存的字符串值,獲取指定偏移量上的位(bit)字符串值指定偏移量上的位(bit)。當偏移量 getrange 比字符串值的長度大,或者 key 不存在時,返回 0。
print(r.get('getrange')) # 返回的結果是 hello word
print(r.getbit('getrange',1)) # 返回的結果是 1
print(r.getbit('getrange',3)) # 返回的結果是 0
print(r.getbit('getr22222ange',3)) # 字符串的鍵不存在的時候返回的結果是 0
print(r.getbit('getrange',300)) # 偏移量超過字符串長度,返回的結果是 0
6.Mget 命令返回全部(一個或多個)給定 key 的值。 若是給定的 key 裏面,有某個 key 不存在,那麼這個 key 返回特殊值 None
print(r.set('1','1')) # 返回的結果是 True
print(r.set('11','11')) # 返回的結果是 True
print(r.set('111','111')) # 返回的結果是 True
print(r.mget('1','11','111')) # 返回的結果是 ['1', '11', '111']
print(r.mget('1','11','222222')) # 由於鍵222222不存在,返回的結果是 ['1', '11', None]
7. Setbit 命令用於對 key 所儲存的字符串值,設置或清除指定偏移量上的位(bit)。
print(r.get('getrange')) # 返回的結果是 hello word
print(r.setbit('getrange',4,10086)) # 返回的結果是 1
print(r.getbit('getrange',10086)) # 返回的結果是 0
print(r.setbit('getrange',5,100861)) # 返回的結果是 0
print(r.getbit('getrange',100861)) # 返回的結果是 0
8.Setex 命令爲指定的 key 設置值及其過時時間。若是 key 已經存在, SETEX 命令將會替換舊的值。
print(r.setex('1','123',10)) # 返回的結果是 True
import time
time.sleep(5)
print(r.ttl('1')) # 返回的結果是 4
print(r.get('1')) # 返回的結果是 123
time.sleep(6)
print(r.get('1')) # 返回的結果是 None
9.Setnx(SET if Not eXists) 命令在指定的 key 不存在時,爲 key 設置指定的值。設置成功,返回 1 。 設置失敗,返回 0 。
print(r.exists('22')) # 返回的結果是 False
print(r.setnx('22','2222222')) # 返回的結果是 True
print(r.setnx('22','123456')) # 返回的結果是 False
print(r.get('22')) # 返回的結果是 2222222
10. Setrange 命令用指定的字符串覆蓋給定 key 所儲存的字符串值,覆蓋的位置從偏移量 offset 開始。
print(r.set('11','hello world')) # 返回的結果是 True
print(r.setrange('11',6,"redis")) # 返回的結果是 11
print(r.get('11')) # 返回的結果是 hello redis
11. Strlen 命令用於獲取指定 key 所儲存的字符串值的長度。當 key 儲存的不是字符串值時,返回一個錯誤。
print(r.get('11')) # 返回的結果是 hello redis
print(r.strlen('11')) # 返回的結果是 11
print(r.strlen('121')) # 當key不存在的時候,返回的結果是 0
12.Mset 命令用於同時設置一個或多個 key-value 對。
# 第一種方法
print (r.mset(name1="1", name2='2')) # 返回的結果是 True
# 第二種方法
print(r.mset({"name3":'3', "name4":'4'})) # 返回的結果是 True
print(r.get('name1')) # 返回的結果是 1
print(r.get('name2')) # 返回的結果是 2
print(r.get('name3')) # 返回的結果是 3
print(r.get('name4')) # 返回的結果是 4
13. Msetnx 命令用於全部給定 key 都不存在時,同時設置一個或多個 key-value 對。
當全部 key 都成功設置,返回 1 。 若是全部給定 key 都設置失敗(至少有一個 key 已經存在),那麼返回 0 。
print(r.msetnx(name5="5", name6='6')) # 返回的結果是 True
print(r.msetnx(name5="55", name7='7')) # 返回的結果是 False
print(r.get('name5') # 返回的結果是 5
print(r.get('name6')) # 返回的結果是 6
print(r.get('name7')) # 返回的結果是 None
14. Psetex 命令以毫秒爲單位設置 key 的生存時間。主意:SETEX 命令那樣,以秒爲單位。
print(r.psetex('name8',1000,"nihao")) # 返回的結果是 True
print(r.pttl('name8')) # 返回的結果是 690
print(r.get('name8')) # 返回的結果是 nihao 時間過時後返回的是 None
15.Incr 命令將 key 中儲存的數字值增一
若是 key 不存在,那麼 key 的值會先被初始化爲 0 ,而後再執行 INCR 操做。
若是值包含錯誤的類型,或字符串類型的值不能表示爲數字,那麼返回一個錯誤。
本操做的值限制在 64 位(bit)有符號數字表示以內。
print(r.set('11',20)) # 返回的結果是 True
print(r.incr('11')) # 返回的結果是 21
print(r.get('11')) # 返回的結果是 21
print(r.incr('11',amount=2)) # 返回的結果是 23
print(r.get('11')) #返回的結果是 23
print(r.incr('21',amount=2)) # 返回的結果是 2
print(r.incr('22')) # 返回的結果是 1
16.Redis Incrby 命令將 key 中儲存的數字加上指定的增量值。
若是 key 不存在,那麼 key 的值會先被初始化爲 0 ,而後再執行 INCRBY 命令。
若是值包含錯誤的類型,或字符串類型的值不能表示爲數字,那麼返回一個錯誤。
print(r.set("13",13)) # 返回的結果是 True
print(r.incrby('13',12)) # 返回的結果是 25
print(r.incrby('15',12)) # 返回的結果是 12
print(r.incrby('15',12)) # 返回的結果是 24
17.Redis Incrbyfloat 命令爲 key 中所儲存的值加上指定的浮點數增量值。
若是 key 不存在,那麼 INCRBYFLOAT 會先將 key 的值設爲 0 ,再執行加法操做。
print(r.set('1',1.1)) # 返回的結果是 True
print(r.incrbyfloat('1',2.32)) # 返回的結果是 3.42
print(r.get('1')) # 返回的結果是 3.42
print(r.incrbyfloat('1',amount=1.2)) # 返回的結果是 4.62
18.Redis Decr 命令將 key 中儲存的數字值減一。
若是 key 不存在,那麼 key 的值會先被初始化爲 0 ,而後再執行 DECR 操做。
若是值包含錯誤的類型,或字符串類型的值不能表示爲數字,那麼返回一個錯誤。
本操做的值限制在 64 位(bit)有符號數字表示以內。
print(r.decr('22')) # 若是 key 22 不存在,返回的結果是 -1
print(r.set('bb',20)) # 返回的結果是 True
print(r.decr('bb',amount=2)) # 返回的結果是 18
print(r.decr('cc')) # 返回的結果是 -1
19. Redis Append 命令用於爲指定的 key 追加值。.net
若是 key 已經存在而且是一個字符串, APPEND 命令將 value 追加到 key 原來的值的末尾。 若是 key 不存在, APPEND 就簡單地將給定 key 設爲 value ,就像執行 SET key value 同樣。code
print(r.set("11",12)) # 返回的結果是 True
print(r.append('11',12)) # 返回的結果是 4
print(r.append('11',1)) # 返回的結果是 5
print(r.append('11',2)) # 返回的結果是 6
print(r.get('11')) # 返回的結果是 121212
print(r.exists('14')) # 返回的結果是 False
print(r.append('14','hello world')) # 返回的結果是 11
print(r.get('14')) # 返回的結果是 hello world