KEY常用命令
????exists key 測(cè)試指定key是否存在
????del key1 key2? 刪除指定key
????type key 返回給定key的value類型
????keys pattern 返回匹配指定模式的所有key(例:keys class*在旱;返回classa,classb,classc)
????rename okey nkey 改名
????dbsize? 返回當(dāng)前數(shù)據(jù)庫的key數(shù)量
????expire key seconds 為key指定過期時(shí)間
????ttl key 返回key剩余過期秒數(shù)(Time To Live)不存在返回-2,永不過期返回-1
????select db-index 選擇數(shù)據(jù)庫(共16個(gè))
????move key db-index? 移動(dòng)到指定數(shù)據(jù)庫
????flushdb 刪除當(dāng)前數(shù)據(jù)庫中所有key
????flushall 刪除所有數(shù)據(jù)庫的所有key
????get keyname? 獲取指定key的值
STRING
????1 string是redis最基本的類型
????2 redis的string可以包含任何數(shù)據(jù)海蔽,包括jpg圖片或者序列化的對(duì)象。
????3 單個(gè)value值最大1G字節(jié)尸变。
????4 如果只用string,redis就可以看做被加上持久化特性的memcache莉兰。
????set? ? key value? ? ? ? ? 設(shè)置key對(duì)應(yīng)的值為string類型的value
????mset? key1 value1 key2 value2 ...? 批量設(shè)置
????mget? key1 key2 ...? ? ? 批量獲取
????incr? key? ? ? ? ? ? ? ? 加加操作聊训,并返回新的值
????decr? key? ? ? ? ? ? ? ? 減減操作,并返回新的值
????incrby key [integer]? ? ? 同incr雏蛮,加指定值
????decrby key [integer]? ? ? 同decr涎嚼,減指定值
? ? append key value? ? ? ? ? 給指定的key追加value
????substr key [start] [end]? 返回截取過得key的字符串值
? ? *當(dāng)加減創(chuàng)建的值不存在,會(huì)自動(dòng)創(chuàng)建挑秉,做0
LIST
????list 類型其實(shí)就是一個(gè)雙向鏈表法梯。通過push,pop操作從鏈表的頭部或者尾部添加刪除元素。既可以作棧(先進(jìn)后出)犀概,也可以用作隊(duì)列(先進(jìn)先出)立哑。
????lpush? key string? ? 在key對(duì)應(yīng)的list的頭部添加字符串元素
????rpush? key string? ? 在尾部添加
????lpop? key? ? ? ? ? 在list的頭部刪除元素,并返回刪除元素
????rpop? key? ? ? ? ? 從list的尾部刪除元素姻灶,并返回刪除元素
????llen? key? ? ? ? ? 返回key對(duì)應(yīng)list的長(zhǎng)度铛绰,key不存在返回0,如果key對(duì)應(yīng)類型不是list返回錯(cuò)誤
????lrange key start end 返回指定區(qū)間內(nèi)的元素
????ltrim? key start end 截取list产喉,保留指定區(qū)間元素
SET
????redis的set是string類型的無序結(jié)合
????set元素最大可以包含(2的32次方-1)個(gè)元素
????set集合類型除了基本的添加刪除操作至耻,其他有用的操作還包括集合的取并集(union),交集(intersection),差集(difference)若皱。通過這些可以很容易實(shí)現(xiàn)sns(社交網(wǎng)絡(luò)平臺(tái))中的好友推薦功能,不允許有重復(fù)元素尘颓。
????sadd key member? ? ? ? 添加一個(gè)string元素到key對(duì)應(yīng)的set集合中走触,成功則返回1,如果元素已經(jīng)在集合中返回0疤苹,key對(duì)應(yīng)的set集合不存在返回錯(cuò)誤
????srem key member [member]? 從key對(duì)應(yīng)的set集合中移除給定元素弦蹂,成功返回1
????smove p1 p2 member ? 將p1所屬set中的member移動(dòng)到p2所屬的set中
????scard key? ? 返回set的元素個(gè)數(shù)
????sismember key member ? 判斷member是否在set中
????sinter key1 key2 ... ? 取所有給定key的交集(intersection)
????sunion key1 key2 ... ? 取所有給定key的并集
????sdiff? key1 key2 ... ? 取所有給定key的差集
????smembers key ? 返回對(duì)應(yīng)set的所有元素砌庄,結(jié)果是無序的
ZSET
????和set不同的是每個(gè)元素都會(huì)關(guān)聯(lián)一個(gè)權(quán)瓮床,通過權(quán)值可以有序的獲取集合中的元素
????zadd key [score] [member] 添加元素到集合夷都,元素在集合中存在則更新對(duì)應(yīng)score(即權(quán)值),權(quán)值相等,先入為大
????zrem key member 刪除指定元素尤莺,成功返回1旅敷,不存在返回0
????zincrby key incr member 按照incr幅度增加對(duì)應(yīng)member的score值,返回score值
????zrank key member 返回指定元素在集合中的排名颤霎,集合中元素是按照score從小到大排序
????zrevrank key member ? ? ? ? 同上媳谁,按照從大到小排序
????zrange key start end 從集合中取指定區(qū)間的元素,返回有序結(jié)果
????zrevrange key start end 返回結(jié)果按照score逆序
????zcard key 返回集合中元素個(gè)數(shù)
????zscore key element 返回給定元素對(duì)應(yīng)的score
????zremrangerank key min max 刪除集合中排名在給定區(qū)間的元素友酱,通過score從小到大(remove range rank)
????例子:
????zadd test 1 zhangsan
????zadd test 2 lisi
????zrange test 0 1
????zhangsan
????lisi
????因?yàn)椴辉试S重復(fù)的成員晴音,可以用來做排行榜。
HASH
????主要用來解決對(duì)象存儲(chǔ)需要序列化和反序列化的開銷缔杉,或者存為多條數(shù)據(jù)的內(nèi)存開銷锤躁。哈希可以直接用key加field進(jìn)行存儲(chǔ)如姓名或详,年齡一些信息系羞,而且可以只針對(duì)其中一條進(jìn)行更改。
????hset key field value? ? 設(shè)置hash->field的值為value,如果key不存在霸琴,則先創(chuàng)建
????hget key field? 獲取指定的hashfield
????hmget key field1...? ? 批量獲取
????hmset key field1 value1 field2 value2 批量設(shè)置
????hincrby key field integer 將指定key->field 加上給定值
????hexists key field? 測(cè)試指定field是否存在
????hdel? key field 刪除指定hash? field
????hkeys key 返回hash 的所有field
????hvals key 返回hash的所有value
????hgetall key 返回hash的所有field和value