Redis不同數(shù)據(jù)類型的命令語(yǔ)句詳解
一、String
String是Redis最基本的類型,最大能存儲(chǔ)512MB的數(shù)據(jù),String類型是二進(jìn)制安全的,即可以存儲(chǔ)人了數(shù)據(jù)類型,比如數(shù)字、圖片、序列化對(duì)象等
Ⅰ、set、get、append、strlen、exists
append key value #追加鍵值,并返回追加后的長(zhǎng)度(若鍵不存在,則相當(dāng)于創(chuàng)建鍵) exists key [key...] #判斷該鍵是否存在,存在返回1,否則返回0 set key value [expiration EX seconds|PX milliseconds] [NX|XX] #創(chuàng)建鍵 get key #查看鍵值 strlen key #獲取指定key的字符長(zhǎng)度
Ⅱ、incr、decr、incrby、decrby
需要值為整數(shù),否則會(huì)報(bào)錯(cuò)
incr key #鍵值增1 decr key #鍵值減1 incrby key increment #鍵值增加指定值 decrby key increment #鍵值減少指定值
Ⅲ、getset、setnx
GETSET key value #獲取key值并返回,同時(shí)給key設(shè)置新值 SETNX key value #不存在鍵的話執(zhí)行set操作,存在的話不執(zhí)行
Ⅳ、setex、ttl
setex key seconds value #設(shè)置指定key的過(guò)期時(shí)間為指定值 ttl key #tt1命令查看指定Key的剩余存活時(shí)間(秒數(shù)),0表示已經(jīng)過(guò)期,-1表示永不過(guò)期。獲取已過(guò) 期的Key將返回(nil)
Ⅴ、mget、mset、msetnx
MSET key value [key value …] #批量設(shè)置鍵-值對(duì) MGET key [key …] #批量獲取鍵值對(duì) MSETNX key value [key value …] #批量設(shè)置鍵值對(duì),都不存在就執(zhí)行并返回1;只要有一個(gè)存在就不執(zhí)行并返回0
二、List
列表的元素類型為String,按照插入順序在列表的頭部和尾部添加元素
Ⅰ、lpush、lpushx、lrange
LPUSH key value [value …] #在頭部(左側(cè))依次插入列表元素 LPUSHX key value #鍵必須存在才能執(zhí)行,在頭部插入元素值并返回并返回列表元素?cái)?shù)量 LRANGE key start stop #取從位置索引start到位置索引stop的所有元素(所以以0開始)
lrange key 0 -1 #展示所有

Ⅱ、lpop、llen
lpop key #移除并返回鍵的第一個(gè)元素 llen key #獲取表中元素?cái)?shù)量

Ⅲ、lrem、lset、lindex、ltrim
lrem key count value #從頭部開始刪除count個(gè)為value的元素,并返回實(shí)際刪除數(shù)量 lset key index value #將位置索引為index的元素設(shè)置新值value lindex key index #獲取索引為index的元素 ltrim key start stop #僅保留從位置索引start到索引stop的元素
lrem刪除一個(gè)符合value為a的值

lset將索引為1(從0開始,即第二個(gè))的元素替換為新值a,獲取索引為2的元素

只保留索引0~2的元素

Ⅳ、linsert
LINSERT key BEFORE|AFTER pivot value #在元素pivot的前面(做左)或后面(右)插入新元素value
在c前面插入b

Ⅴ、rpush、rpushx、rpop、rpoplpush
RPUSH key value [value …] #在列表的尾部依次插入value RPUSHX key value #key必須存在才可執(zhí)行,將value從尾部插入,并返回所有元素?cái)?shù)量 RPOP key #在尾部彈出(移除)一個(gè)元素,并返回該元素 RPOPLPUSH source destination #在key1的尾部彈出一個(gè)元素并返回,將它插入key2的頭部
rpush從test尾部依次插入jklmn

rpop尾部第一個(gè)元素

將test的尾部元素m彈出,同時(shí)再插入到test1的頭部(原子性的完成這兩步操作),也可以作用在test自己身上,將最后一個(gè)元素提到第一個(gè)

三、Hash
Hash用于存儲(chǔ)對(duì)象,可以采用這樣的命名方式(hash格式):對(duì)象列別和ID構(gòu)成鍵名,使用字段表示對(duì)象的屬性,而字段值則存儲(chǔ)屬性值
Ⅰ、hset、hget、hexisits、hdel、hlen、hsetnx
hset key field value #創(chuàng)建key hget key field #獲取key-value hexists key field #key是否存在 hdel key field [field ...] #刪除指定key hlen key #key字段數(shù) hsetnx key field value #不重復(fù)的創(chuàng)建key,即只有指定的key不存在才可以創(chuàng)建
Ⅱ、hincrby
hincrby key field increment #給指定的hash類型(整數(shù))值指定增長(zhǎng)值
key hash kk字段設(shè)值為4,hincrby1后kk值為5

Ⅲ、hgetall、hkeys、hvals、hmset、hmget
hgetall key #輸出指定字段的所有字段以及值 hkeys key #輸出指定鍵中的所有字段名 hvals key #輸出指定鍵中的所有字段值 hmset key field value [field value ...] #一次性設(shè)置多個(gè)字段 hmget key field [field ...] #一次性獲取多個(gè)字段
四、set
無(wú)序集合,元素類型為string類型,元素具有唯一性,不允許存在重復(fù)的成員。多個(gè)集合類型之間可以進(jìn)行并集、交集和差集運(yùn)算
應(yīng)用范圍:
可以使用Redis的Set數(shù)據(jù)類型跟蹤一些唯一性數(shù)據(jù),比如訪問某一博客的唯一IP地址信息。對(duì)于此場(chǎng)景,我們僅需在每次訪問該博客時(shí)將訪問者的IP存入Redis中,Set數(shù)據(jù)類型會(huì)自動(dòng)保證IP地址的唯一性。充分利用Set類型的服務(wù)端聚合操作方便、高效的特性,可以用于維護(hù)數(shù)據(jù)對(duì)象之間的關(guān)聯(lián)關(guān)系。比如購(gòu)買某一電子設(shè)備的客戶ID被存儲(chǔ)在一個(gè)指定的Set中,而購(gòu)買另外一種電子產(chǎn)品的客戶ID被存儲(chǔ)在另外一個(gè)Set中,如果此時(shí)我們向獲取有哪些客戶同時(shí)購(gòu)買了這兩種商品時(shí),Set的intersections命令就可以充分發(fā)揮它的方便和效率的優(yōu)勢(shì)
Ⅰ、sadd、smembers、scard、sismember
sadd key member [member ...] #創(chuàng)建鍵并加入member smembers key #查看指定key中所有的members scard key #查看指定key中members個(gè)數(shù) sismember key member #判斷指定key中的member是否存在
創(chuàng)建key-set,members為qq、ww、ee、rr,判斷qq在其中返回1,判斷pp不在其中返回0

Ⅱ、spop、srem、srandmember、smove
spop key [count] #隨機(jī)的移除并返回key中的某一成員 srem key member [member ...] #從指定key中移除指定member srandmember key [count] #隨機(jī)輸出指定數(shù)量的members smove source destination member #將一個(gè)member移動(dòng)到另一個(gè)key中


五、Sorted Set
有序集合,元素類型為string,元素具有唯一性,不能重復(fù)。每個(gè)元素都會(huì)關(guān)聯(lián)一個(gè)double類型的分?jǐn)?shù)score(表示權(quán)重),可以通過(guò)權(quán)重的大小排序,元素的score可以相同
應(yīng)用范圍:
可以用于一個(gè)大型在線游戲的積分沛航胖,每當(dāng)玩家的分?jǐn)?shù)發(fā)生變化時(shí),可以執(zhí)行ZADD命令更新玩家的分?jǐn)?shù),此后再通過(guò)ZRANGE命令獲取積分TOP10的用戶信息。當(dāng)然我們也可以利用ZRANK命令通過(guò)usename來(lái)獲取玩家的排行信息。最后我們將組合使用ZRANGE和ZRANK命令快速的獲取和某個(gè)玩家積分相近的其他用戶的信息。Sorted-Set類型還可用于構(gòu)建索引數(shù)據(jù)
Ⅰ、zadd、zcard、zcount、zrem、zincrby、zscore、zrange、zrank
zadd key [NX|XX] [CH] [INCR] score member [score member ...] #向有序集合內(nèi)添加members,或更新已存在的score zcard key #獲取key中的members數(shù)量 zcount key min max #輸出滿足 min <= score <= max 條件的成員數(shù)量 zrem key member [member ...] #刪除成員member并返回操作后的成員數(shù)量 zincrby key increment member #讓指定的成員以指定increment增加 zrange key start stop [WITHSCORES] #查看成員,從0開始 zrank key member #獲取成員的索引位置
Ⅱ、zrangebyscore、zremrangebyrank、zremrangebyscore
zrangebyscore key min max [WITHSCORES] [LIMIT offset count] #獲取滿足min <= score <= max 的成員 zremrangebyrank key start stop #刪除滿足min <= rank <= max 的成員 zremrangebyscore key min max #刪除滿足min <= score <= max 的成員
Ⅲ、zrevrange、zrevrangebyscore、zrevrank
zrevrange key start stop [WITHSCORES] #以位置索引從高到低的方式獲取并返回此區(qū)間內(nèi)的成員 zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count] #獲取滿足 min <= score <= max 的成員 zrevrank key member #獲取指定成員的索引位置
到此這篇關(guān)于Redis不同數(shù)據(jù)類型的命令語(yǔ)句詳解的文章就介紹到這了,更多相關(guān)Redis命令語(yǔ)句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Redis中的3種特殊數(shù)據(jù)結(jié)構(gòu)詳解
在本文中,我們對(duì)三種特殊的數(shù)據(jù)類型進(jìn)行了介紹,它們分別是geospatial(地理空間數(shù)據(jù)類型)、HyperLogLogs和Bitmaps(位圖),這些數(shù)據(jù)類型在不同的領(lǐng)域和應(yīng)用中發(fā)揮著重要作用,并且具有各自獨(dú)特的特性和用途,對(duì)Redis特殊數(shù)據(jù)結(jié)構(gòu)相關(guān)知識(shí)感興趣的朋友一起看看吧2024-02-02
redis 過(guò)期策略及內(nèi)存回收機(jī)制解析
這篇文章主要介紹了redis 過(guò)期策略及內(nèi)存回收機(jī)制,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
k8s部署redis cluster集群的實(shí)現(xiàn)
在Kubernetes中部署Redis集群面臨挑戰(zhàn),因?yàn)槊總€(gè)Redis實(shí)例都依賴于一個(gè)配置文件,該文件可以跟蹤其他集群實(shí)例及其角色。需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06
Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程
集群收縮的源端就是要下線的主節(jié)點(diǎn),目標(biāo)端就是在線的主節(jié)點(diǎn),這篇文章主要介紹了Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程,需要的朋友可以參考下2021-11-11
淺談一下Redis的數(shù)據(jù)結(jié)構(gòu)
這篇文章主要介紹了淺談一下Redis的數(shù)據(jù)結(jié)構(gòu),簡(jiǎn)單字符串結(jié)構(gòu)被用于存儲(chǔ)redis的key對(duì)象和String類型的value對(duì)象,其中的free和len字段可以輕松的使得在該字符串被修改時(shí)判斷是否需要擴(kuò)容,需要的朋友可以參考下2023-08-08
Redis實(shí)現(xiàn)會(huì)話管理和token認(rèn)證的示例代碼
會(huì)話管理和身份認(rèn)證是實(shí)現(xiàn)用戶登錄、權(quán)限管理等功能的基礎(chǔ),本文主就來(lái)介紹一下Redis實(shí)現(xiàn)會(huì)話管理和token認(rèn)證的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下2025-04-04
Redis中的動(dòng)態(tài)字符串學(xué)習(xí)教程
這篇文章主要介紹了Redis中的動(dòng)態(tài)字符串學(xué)習(xí)教程,以sds模塊的使用為主進(jìn)行講解,需要的朋友可以參考下2015-08-08

