redis是key-value的數(shù)據(jù)結(jié)構(gòu),每條數(shù)據(jù)都是一個(gè)鍵值對
定遠(yuǎn)ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
鍵的類型是字符串,因?yàn)槟J(rèn)是字符串所以都不用加引號(hào)
注意:鍵不能重復(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存在則成功,反之失?。ㄒ欢ǜ采w舊值)!
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è)置多個(gè)鍵值
mset gender M age 18 addr SH
mget key1 key2 key3... # 獲取多個(gè)鍵值
mget gender age addr
append key value # 追加值,將內(nèi)容追加到字符串的末尾
append name 123 --> "daiby123"
strlen key # 返回字符串鍵key存儲(chǔ)的值的長度,redis會(huì)記錄每個(gè)字符串值的長度,時(shí)間復(fù)雜度O(1)
strlen aaa
setrange key index value # 從索引index開始,用value覆寫鍵所存儲(chǔ)的字符串值,只接受正數(shù)索引
setrange aaa 1 222 --> 4222
getrange key start stop # 范圍取值,返回位于start和end兩個(gè)索引之間的值,閉區(qū)間,索引可以是正數(shù)或負(fù)數(shù)
getrange aaa 0 2
getrange aaa 0 -2
# 只要存儲(chǔ)在字符串鍵里面的值可以被解釋為64位整數(shù)或者IEEE-754標(biāo)準(zhǔn)的64位浮點(diǎn)數(shù),那么就可以對這個(gè)字符串鍵執(zhí)行針對數(shù)字值的命令
# 即使字符串鍵存儲(chǔ)的是數(shù)字值,也可以執(zhí)行append,strlen,setrange,getrange
incrby key increment # 將key所存儲(chǔ)的值加上增量increment
incrby aaa 100
decrby key decrement # 將key所存儲(chǔ)的值減去減量decrement
decrby aaa 1000
incr key # 加一,等同于incrby key 1
incr ccc
decr key # 減一,等同于decrby key 1
decr ccc
incrbyfloat key increment # 浮點(diǎn)數(shù)的自增和自減,沒有decrbyfloat,通過給定負(fù)值來達(dá)到相應(yīng)的效果
incrbyfloat ccc 1.11
incrbyfloat ccc -23.45
# set,get,setnx,append等命令同樣可以用于設(shè)置二進(jìn)制數(shù)據(jù)
# 與存儲(chǔ)文件時(shí)索引不同,存儲(chǔ)二進(jìn)制數(shù)索引是從左到右遞減
>>>import redis
>>>r = redis.StrictRedis()
>>>r.set('bites', 0b10010100)
>>>bin(int(r.get('bites'))) # 轉(zhuǎn)換成十進(jìn)制數(shù)是148
>>>r.append('bites',0b111) # 十進(jìn)制數(shù)7
>>>bin(int(r.get('bites'))) # 轉(zhuǎn)換成十進(jìn)制數(shù)是1487
setbit key index value # 設(shè)置二進(jìn)制位的值,將給定索引上的二級(jí)制位的值設(shè)置為value
setbit bites 2 1
getbit key index # 返回給定索引上的二進(jìn)制位的值
getbit bites 6
bitcount key start end # 計(jì)算并返回字符串存儲(chǔ)的值中被設(shè)置為1的二進(jìn)制位的數(shù)量
bitcount bites 0 -1
# strlen,setrange,getrange不適用于中文
### hash用于存儲(chǔ)對象,對象的結(jié)構(gòu)為屬性、值,值的基本類型為string
### 散列的鍵和值都可以是文字、整數(shù)、浮點(diǎn)數(shù)或者二進(jìn)制數(shù)據(jù)
### 盡量使用散列鍵來存儲(chǔ)鍵值對,而不是字符串鍵,避免命名沖突和節(jié)省內(nèi)存
hset key field value # 設(shè)置單個(gè)屬性
hset py1 name daiby
hsetnx key field value # 如果散列鍵key中,field不存在,則命令成功
hsetnx message addr sh
hmset key field1 value1 field2 value2 ... # 設(shè)置多個(gè)屬性
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 # 獲取指定鍵的一個(gè)屬性的值
hget py1 name
hgetall key # 返回散列鍵key包含的所有域值對
hgetall message
hmget key field1 field2 ... # 獲取指定鍵的多個(gè)屬性的值
hmget py3 name age addr
hdel key field1 field2 ... # 刪除屬性,屬性對應(yīng)的值會(huì)被一起刪除,如果想刪除hash鍵就把所有的屬性都要?jiǎng)h除
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的值加上或減去浮點(diǎn)數(shù)increment
hincrbyfloat message id +1.1
本文題目:Redis常用命令(一)字符串鍵、散列鍵
URL地址:http://chinadenli.net/article24/pijjje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、網(wǎng)站營銷、外貿(mào)建站、服務(wù)器托管、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)