redis是key-value的數(shù)據(jù)結(jié)構(gòu),每條數(shù)據(jù)都是一個鍵值對
鍵的類型是字符串,因為默認是字符串所以都不用加引號
注意:鍵不能重復(fù)
值的類型分為五種:
字符串string
散列hash
列表list
集合set
有序集合zset
### string字符串鍵
set key value # 設(shè)置的鍵不存在則為添加,如果設(shè)置的鍵已經(jīng)存在則修改
set name daiby
set key value [NX|XX] # NX: 如果key不存在則成功,反之失?。ú桓采w舊值)! XX: 如果key存在則成功,反之失敗(一定覆蓋舊值)!
set aaa 222 nx # 如果aaa存在則失敗
set aaa 222 xx # 如果aaa不存在則失敗
setnx key value # 僅在key不存在的情況下,將key的值設(shè)置為value,等同于set key value nx
msetnx key value key value # 僅在所有key不存在的情況下,將key的值設(shè)置為value
getset key new-value # 將字符串鍵的值設(shè)置為新值,并返回舊值
getset aaa 444
get key # 獲取鍵值
get name
mset key1 value1 key2 value2 ... # 設(shè)置多個鍵值
mset gender M age 18 addr SH
mget key1 key2 key3... # 獲取多個鍵值
mget gender age addr
append key value # 追加值,將內(nèi)容追加到字符串的末尾
append name 123 --> "daiby123"
strlen key # 返回字符串鍵key存儲的值的長度,redis會記錄每個字符串值的長度,時間復(fù)雜度O(1)
strlen aaa
setrange key index value # 從索引index開始,用value覆寫鍵所存儲的字符串值,只接受正數(shù)索引
setrange aaa 1 222 --> 4222
getrange key start stop # 范圍取值,返回位于start和end兩個索引之間的值,閉區(qū)間,索引可以是正數(shù)或負數(shù)
getrange aaa 0 2
getrange aaa 0 -2
# 只要存儲在字符串鍵里面的值可以被解釋為64位整數(shù)或者IEEE-754標準的64位浮點數(shù),那么就可以對這個字符串鍵執(zhí)行針對數(shù)字值的命令
# 即使字符串鍵存儲的是數(shù)字值,也可以執(zhí)行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 # 浮點數(shù)的自增和自減,沒有decrbyfloat,通過給定負值來達到相應(yīng)的效果
incrbyfloat ccc 1.11
incrbyfloat ccc -23.45
# set,get,setnx,append等命令同樣可以用于設(shè)置二進制數(shù)據(jù)
# 與存儲文件時索引不同,存儲二進制數(shù)索引是從左到右遞減
>>>import redis
>>>r = redis.StrictRedis()
>>>r.set('bites', 0b10010100)
>>>bin(int(r.get('bites'))) # 轉(zhuǎn)換成十進制數(shù)是148
>>>r.append('bites',0b111) # 十進制數(shù)7
>>>bin(int(r.get('bites'))) # 轉(zhuǎn)換成十進制數(shù)是1487
setbit key index value # 設(shè)置二進制位的值,將給定索引上的二級制位的值設(shè)置為value
setbit bites 2 1
getbit key index # 返回給定索引上的二進制位的值
getbit bites 6
bitcount key start end # 計算并返回字符串存儲的值中被設(shè)置為1的二進制位的數(shù)量
bitcount bites 0 -1
# strlen,setrange,getrange不適用于中文
### hash用于存儲對象,對象的結(jié)構(gòu)為屬性、值,值的基本類型為string
### 散列的鍵和值都可以是文字、整數(shù)、浮點數(shù)或者二進制數(shù)據(jù)
### 盡量使用散列鍵來存儲鍵值對,而不是字符串鍵,避免命名沖突和節(jié)省內(nèi)存
hset key field value # 設(shè)置單個屬性
hset py1 name daiby
hsetnx key field value # 如果散列鍵key中,field不存在,則命令成功
hsetnx message addr sh
hmset key field1 value1 field2 value2 ... # 設(shè)置多個屬性
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 ... # 刪除屬性,屬性對應(yīng)的值會被一起刪除,如果想刪除hash鍵就把所有的屬性都要刪除
hdel name age addr
hlen key # 返回散列鍵key包含的域值對數(shù)量
hlen message
hincrby key field increment # 為散列鍵key中field的值加上或減去整數(shù)increment
hincrby message id -10
hincrbyfloat key filed increment # 為散列鍵key中field的值加上或減去浮點數(shù)increment
hincrbyfloat message id +1.1
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
分享文章:Redis常用命令(一)字符串鍵、散列鍵-創(chuàng)新互聯(lián)
網(wǎng)頁地址:http://www.ekvhdxd.cn/article38/dhhppp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、標簽優(yōu)化、網(wǎng)站設(shè)計公司、企業(yè)網(wǎng)站制作、網(wǎng)站設(shè)計、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容