您好,登錄后才能下訂單哦!
redis是key-value的數據結構,每條數據都是一個鍵值對
鍵的類型是字符串,因為默認是字符串所以都不用加引號
注意:鍵不能重復
值的類型分為五種:
字符串string
散列hash
列表list
集合set
有序集合zset
### string字符串鍵
set key value # 設置的鍵不存在則為添加,如果設置的鍵已經存在則修改
set name daiby
set key value [NX|XX] # NX: 如果key不存在則成功,反之失敗(不覆蓋舊值)! XX: 如果key存在則成功,反之失敗(一定覆蓋舊值)!
set aaa 222 nx # 如果aaa存在則失敗
set aaa 222 xx # 如果aaa不存在則失敗
setnx key value # 僅在key不存在的情況下,將key的值設置為value,等同于set key value nx
msetnx key value key value # 僅在所有key不存在的情況下,將key的值設置為value
getset key new-value # 將字符串鍵的值設置為新值,并返回舊值
getset aaa 444
get key # 獲取鍵值
get name
mset key1 value1 key2 value2 ... # 設置多個鍵值
mset gender M age 18 addr SH
mget key1 key2 key3... # 獲取多個鍵值
mget gender age addr
append key value # 追加值,將內容追加到字符串的末尾
append name 123 --> "daiby123"
strlen key # 返回字符串鍵key存儲的值的長度,redis會記錄每個字符串值的長度,時間復雜度O(1)
strlen aaa
setrange key index value # 從索引index開始,用value覆寫鍵所存儲的字符串值,只接受正數索引
setrange aaa 1 222 --> 4222
getrange key start stop # 范圍取值,返回位于start和end兩個索引之間的值,閉區間,索引可以是正數或負數
getrange aaa 0 2
getrange aaa 0 -2
# 只要存儲在字符串鍵里面的值可以被解釋為64位整數或者IEEE-754標準的64位浮點數,那么就可以對這個字符串鍵執行針對數字值的命令
# 即使字符串鍵存儲的是數字值,也可以執行append,strlen,setrange,getrange
incrby key increment # 將key所存儲的值加上增量increment
incrby aaa 100
decrby key decrement # 將key所存儲的值減去減量decrement
decrby aaa 1000
incr key # 加一,等同于incrby key 1
incr ccc
decr key # 減一,等同于decrby key 1
decr ccc
incrbyfloat key increment # 浮點數的自增和自減,沒有decrbyfloat,通過給定負值來達到相應的效果
incrbyfloat ccc 1.11
incrbyfloat ccc -23.45
# set,get,setnx,append等命令同樣可以用于設置二進制數據
# 與存儲文件時索引不同,存儲二進制數索引是從左到右遞減
>>>import redis
>>>r = redis.StrictRedis()
>>>r.set('bites', 0b10010100)
>>>bin(int(r.get('bites'))) # 轉換成十進制數是148
>>>r.append('bites',0b111) # 十進制數7
>>>bin(int(r.get('bites'))) # 轉換成十進制數是1487
setbit key index value # 設置二進制位的值,將給定索引上的二級制位的值設置為value
setbit bites 2 1
getbit key index # 返回給定索引上的二進制位的值
getbit bites 6
bitcount key start end # 計算并返回字符串存儲的值中被設置為1的二進制位的數量
bitcount bites 0 -1
# strlen,setrange,getrange不適用于中文
### hash用于存儲對象,對象的結構為屬性、值,值的基本類型為string
### 散列的鍵和值都可以是文字、整數、浮點數或者二進制數據
### 盡量使用散列鍵來存儲鍵值對,而不是字符串鍵,避免命名沖突和節省內存
hset key field value # 設置單個屬性
hset py1 name daiby
hsetnx key field value # 如果散列鍵key中,field不存在,則命令成功
hsetnx message addr sh
hmset key field1 value1 field2 value2 ... # 設置多個屬性
hmset py3 name daiby age 18 addr SH
hexists key field # 查看給定的field是否存在
hexists message addr
hkeys key # 獲取指定鍵所有的屬性
hkeys py3
hvals key # 獲取指定鍵的所有屬性的值
hvals py3
hget key field # 獲取指定鍵的一個屬性的值
hget py1 name
hgetall key # 返回散列鍵key包含的所有域值對
hgetall message
hmget key field1 field2 ... # 獲取指定鍵的多個屬性的值
hmget py3 name age addr
hdel key field1 field2 ... # 刪除屬性,屬性對應的值會被一起刪除,如果想刪除hash鍵就把所有的屬性都要刪除
hdel name age addr
hlen key # 返回散列鍵key包含的域值對數量
hlen message
hincrby key field increment # 為散列鍵key中field的值加上或減去整數increment
hincrby message id -10
hincrbyfloat key filed increment # 為散列鍵key中field的值加上或減去浮點數increment
hincrbyfloat message id +1.1
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。