版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章鍵值對(duì)存儲(chǔ)數(shù)據(jù)庫(kù)Redis ·Redis的概述·
Redis支持的數(shù)據(jù)結(jié)構(gòu)·Redis的部署·使用redis-cli操作Redis·使用Java操作Redis?學(xué)習(xí)目標(biāo)熟悉理解掌握熟悉Redis概述12理解Redis支持的數(shù)據(jù)結(jié)構(gòu)掌握Redis的部署3掌握4掌握redis-cli操作Redis、Java操作Redis
目錄
Redis支持的數(shù)據(jù)結(jié)構(gòu)7.27.1Redis的概述7.3Redis的部署?點(diǎn)擊查看本節(jié)相關(guān)知識(shí)點(diǎn)?點(diǎn)擊查看本節(jié)相關(guān)知識(shí)點(diǎn)
目錄使用Java操作Redis7.57.4使用redis-cli操作Redis?點(diǎn)擊查看本節(jié)相關(guān)知識(shí)點(diǎn)?點(diǎn)擊查看本節(jié)相關(guān)知識(shí)點(diǎn)7.1Redis的概述
知識(shí)架構(gòu)7.1.17.1.3Redis簡(jiǎn)介Redis特點(diǎn)Redis應(yīng)用場(chǎng)景7.1.27.3Redis的部署
知識(shí)架構(gòu)7.3.1基于Windows平臺(tái)基于Linux平臺(tái)7.3.27.4使用redis-cli操作Redis
知識(shí)架構(gòu)7.4.1操作鍵操作字符串7.4.27.4.3操作列表7.4使用redis-cli操作Redis
知識(shí)架構(gòu)7.4.4操作集合操作散列7.4.57.4.6操作有序集合7.5使用Java操作Redis
知識(shí)架構(gòu)7.5.1環(huán)境搭建操作鍵7.5.27.5.3操作字符串操作列表7.5.47.5使用Java操作Redis
知識(shí)架構(gòu)7.5.5操作集合操作散列7.5.67.5.7操作有序集合由于Redis是一個(gè)開(kāi)源的高性能鍵值對(duì)數(shù)據(jù)庫(kù)。本章將針對(duì)Redis數(shù)據(jù)庫(kù)的相關(guān)知識(shí)進(jìn)行詳細(xì)講解。章節(jié)概要鍵值對(duì)存儲(chǔ)數(shù)據(jù)庫(kù)是NoSQL數(shù)據(jù)庫(kù)的一種類型,也是最簡(jiǎn)單的NoSQL數(shù)據(jù)庫(kù)。顧名思義,鍵值對(duì)存儲(chǔ)數(shù)據(jù)庫(kù)中的數(shù)據(jù)是以鍵值對(duì)的形式來(lái)存儲(chǔ)的。常見(jiàn)的鍵值對(duì)存儲(chǔ)數(shù)據(jù)庫(kù)有Redis、TokyoCabinet/Tyrant、Voldemort以及OracleBDB數(shù)據(jù)庫(kù)。
7.1Redis的概述2008年,意大利的一家創(chuàng)業(yè)公司Merzia推出了一款基于MySQL的網(wǎng)站實(shí)時(shí)統(tǒng)計(jì)系統(tǒng)LLOOGG,然而沒(méi)過(guò)多久該公司的創(chuàng)始人SalvatoreSanfilippo便對(duì)MySQL的性能感到失望,于是他決定親自為L(zhǎng)LOOGG量身定做一個(gè)數(shù)據(jù)庫(kù)。2009年,LLOOGG量身定做的數(shù)據(jù)庫(kù)開(kāi)發(fā)完成,這個(gè)數(shù)據(jù)庫(kù)就是Redis。不過(guò),SalvatoreSanfilippo并不滿足只將Redis用于LLOOGG這一款產(chǎn)品,而是希望更多的人使用它,于是在同一年SalvatoreSanfilippo將Redis開(kāi)源發(fā)布,并開(kāi)始和Redis的另一名主要的代碼貢獻(xiàn)者PieterNoordhuis一起開(kāi)發(fā)Redis。2010年,VMware公司開(kāi)始贊助Redis的開(kāi)發(fā),SalvatoreSanfilippo和PieterNoordhuis也分別在同年的3月和5月分別加入VMware,并全職開(kāi)發(fā)Redis。Redis簡(jiǎn)介
7.1Redis的概述RemoteDictionaryServer,簡(jiǎn)稱Redis,即遠(yuǎn)程字典服務(wù)器,它是一個(gè)開(kāi)源的、高性能的、基于鍵值對(duì)的緩存與存儲(chǔ)數(shù)據(jù)庫(kù),并且通過(guò)提供多種鍵值數(shù)據(jù)結(jié)構(gòu)來(lái)適應(yīng)不同場(chǎng)景下的緩存與存儲(chǔ)需求。Redis數(shù)據(jù)庫(kù)是基于ANSIC語(yǔ)言編寫開(kāi)發(fā)的,并且提供了多種語(yǔ)言API,例如Java、C/C++、C#、PHP、JavaScript、Perl、Python及Ruby等語(yǔ)言。Redis簡(jiǎn)介
7.1Redis的概述Redis特點(diǎn)讀寫速度快支持多種數(shù)據(jù)結(jié)構(gòu)功能豐富應(yīng)用廣泛
7.1Redis的概述Redis應(yīng)用場(chǎng)景緩存構(gòu)建隊(duì)列系統(tǒng)實(shí)時(shí)的反垃圾系統(tǒng)排行榜數(shù)據(jù)自動(dòng)過(guò)期處理計(jì)數(shù)器應(yīng)用
7.2Redis支持的數(shù)據(jù)結(jié)構(gòu)Redis數(shù)據(jù)庫(kù)提供了多種數(shù)據(jù)結(jié)構(gòu),其中最常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)有String(字符串)、List(列表)、Set(集合)、Hash(散列)、SortedSets(有序集合)。
7.2Redis支持的數(shù)據(jù)結(jié)構(gòu)將圖中的Bookid看作是編程語(yǔ)言中的字符串變量名,那么100020就是該變量名的值。String字符串的內(nèi)部結(jié)構(gòu)示意圖String(字符串)1String字符串是Redis中最基本也是最簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu),其值是二進(jìn)制安全的,值的數(shù)據(jù)類型可以為數(shù)字、文本、圖片、視頻或者序列化的對(duì)象等,值的最大長(zhǎng)度不能超過(guò)512M。
7.2Redis支持的數(shù)據(jù)結(jié)構(gòu)List列表的內(nèi)部結(jié)構(gòu)示意圖List(列表)2List列表是由若干個(gè)字符串元素組成的集合,并且每個(gè)字符串元素都是按照插入順序排序的。我們也可以將列表理解為多個(gè)字符串組成一個(gè)集合對(duì)象,并按照鏈表(LinkList)的插入順序排序,在讀寫操作時(shí)只能從其頭部或尾部開(kāi)始,而不能從中間開(kāi)始。
7.2Redis支持的數(shù)據(jù)結(jié)構(gòu)List(列表)2LBookid為列表的鍵名,100020、100021、100022、100022均為列表中鍵的值,這些值均按照插入順序排列,其中100020是列表中的第一個(gè)字符串元素、100021是列表中的第二個(gè)元素、100022是列表中的第三個(gè)元素、100022是列表中的第四個(gè)元素(也是尾部元素)。由于List列表中允許出現(xiàn)重復(fù)的元素,因此List列表中的第三個(gè)元素和第四個(gè)元素均為100022。
7.2Redis支持的數(shù)據(jù)結(jié)構(gòu)Set(集合)3Set集合由不重復(fù)且無(wú)序的字符串元素組成的,其中,不重復(fù)意味著一個(gè)集合中的所有字符串都是唯一的,這是與List列表的第一個(gè)區(qū)別;無(wú)序意味著所有字符串的讀寫是任意的位置的,而List列表中元素的讀寫必須要從頭部或尾部開(kāi)始操作,因此,這是與List列表的第二個(gè)區(qū)別。Set集合的內(nèi)部結(jié)構(gòu)示意圖
7.2Redis支持的數(shù)據(jù)結(jié)構(gòu)Set(集合)3SBookid為集合的鍵名,100021、100022、100020、100023均為集合中鍵的值。由于Set集合中不允許出現(xiàn)重復(fù)的元素,因此Set集合中的元素均是唯一的,并且元素都是無(wú)序的。
7.2Redis支持的數(shù)據(jù)結(jié)構(gòu)Hash散列的內(nèi)部結(jié)構(gòu)示意圖Hash(散列)4Hash散列可以存儲(chǔ)多個(gè)鍵值對(duì)之間的映射,屬于無(wú)序的一種數(shù)據(jù)集合與字符串類似,Hash散列存儲(chǔ)鍵的類型必須為字符串,而值的類型既可以是字符串也可以是數(shù)字,但是值必須是唯一的,不可重復(fù)。Hash散列的鍵之間可以采用“:”符號(hào)隔開(kāi),增加用戶的可閱讀性,并為用戶提供更多的信息。
7.2Redis支持的數(shù)據(jù)結(jié)構(gòu)Hash(散列)4“Book:name”、“Book:id”、“Book:author”以及“Book:price”為散列的鍵名,“《格局》”、“100022”、“wujun”以及“45”均為散列中鍵對(duì)應(yīng)的值。
7.2Redis支持的數(shù)據(jù)結(jié)構(gòu)SortedSets(有序集合)5SortedSets有序集合和散列類似,主要區(qū)別是有序集合是按照值進(jìn)行自動(dòng)排序的,而散列中的值是不排序的;有序集合可以直接對(duì)值進(jìn)行操作,而散列是通過(guò)鍵來(lái)查找值。有序集合中的鍵必須是唯一的,但是值可以是重復(fù)的,而散列的值是唯一的。SortedSets有序集合的內(nèi)部結(jié)構(gòu)示意圖
7.2Redis支持的數(shù)據(jù)結(jié)構(gòu)SortedSets(有序集合)5有序集合是按照值的大小進(jìn)行排序的,其中,“Book:id04”、“Book:id02”、“Book:id03”以及“Book:id01”為有序集合的鍵名,100021、100022、100023以及100023均為有序集合中鍵對(duì)應(yīng)的值。
7.3Redis的部署Redis是一個(gè)開(kāi)源、跨平臺(tái)的數(shù)據(jù)庫(kù),因此Redis數(shù)據(jù)庫(kù)可以運(yùn)行在Windows、Linux、MacOS和BSD(Unix的衍生系統(tǒng))等多個(gè)平臺(tái)上,為我們提供數(shù)據(jù)庫(kù)服務(wù)。不同的操作系統(tǒng)平臺(tái),部署Redis也會(huì)有所不同。
7.3Redis的部署由于Redis官方不支持Windows平臺(tái),因此我們無(wú)法在Redis官網(wǎng)下載Redis安裝包,但是,微軟開(kāi)發(fā)并維護(hù)了針對(duì)Win64的Windows版本。因此,本書選擇使用64位的Redis安裝包?;赪indows平臺(tái)的Redis部署的具體步驟如下:基于Windows平臺(tái)(1)下載Redis安裝包。解壓Redis安裝包。(2)啟動(dòng)Redis服務(wù)。(3)啟動(dòng)Redis客戶端。(4)
7.3Redis的部署由于root用戶擁有的權(quán)限很大,處于系統(tǒng)安全的考慮,需要新建一個(gè)普通用戶操作Redis數(shù)據(jù)庫(kù),因此基于Linux平臺(tái)部署Redis之前,需要新建一個(gè)用戶user_redis,并進(jìn)行授權(quán)操作。本教材是在服務(wù)器nosql01上部署的Redis數(shù)據(jù)庫(kù),關(guān)于用戶user_redis的新建、授權(quán)、切換操作可參考第3章3.1.2小節(jié)內(nèi)容?;贚inux平臺(tái)
7.3Redis的部署接下來(lái),我們將詳細(xì)講解基于Linux平臺(tái)部署Redis,具體部署步驟如下:基于Linux平臺(tái)(1)下載Redis安裝包。解壓Redis安裝包。(2)編譯Redis解壓包的文件。(3)安裝Redis。(4)(5)啟動(dòng)Redis服務(wù)。直接啟動(dòng)Redis服務(wù)和使用配置文件啟動(dòng)Redis服務(wù)。啟動(dòng)Redis客戶端。執(zhí)行“redis-cli”命令,啟動(dòng)并進(jìn)入Redis客戶端。(6)
7.4使用redis-cli操作Redis操作鍵Redis鍵操作是Redis數(shù)據(jù)庫(kù)中非常重要和常用的操作。下面,通過(guò)一張表來(lái)介紹一下常用的Redis鍵操作命令及相關(guān)說(shuō)明,具體如表所示。操作命令相關(guān)說(shuō)明SET為指定鍵設(shè)置值MSET為多個(gè)鍵設(shè)置值KEYS查找所有符合給定模式pattern(正則表達(dá)式)的鍵GET獲取指定鍵的值MSET獲取多個(gè)鍵的對(duì)應(yīng)值DUMP序列化指定的鍵,并返回被序列化的值EXISTS判斷指定鍵是否存在
7.4使用redis-cli操作Redis操作鍵操作命令相關(guān)說(shuō)明TYPE查看指定鍵的類型RENAME刪除指定鍵的值EXPIRE設(shè)置指定鍵的生存時(shí)間,以秒計(jì)TTL返回指定鍵的剩余生存時(shí)間PERSIST移除鍵的生存時(shí)間DEL在鍵存在時(shí),刪除key續(xù)表
7.4使用redis-cli操作Redis操作鍵SET命令1
使用SET命令為指定鍵設(shè)置值,具體語(yǔ)法如下:SETkeyvalue上述語(yǔ)法中,SET是為指定鍵設(shè)置值的命令,若是所指定的鍵不存在,則創(chuàng)建鍵,否則進(jìn)行覆蓋操作;key表示鍵;value表示為指定鍵設(shè)置的值。下面,我們演示為鍵company指定值itcast,具體如下::6379>setcompanyitcastOK從上述返回結(jié)果“OK”可以看出,我們成功為鍵company指定值itcast。
7.4使用redis-cli操作Redis操作鍵MSET命令2使用MSET命令為多個(gè)鍵設(shè)置值,具體語(yǔ)法如下:MSETkey1value1key2value2...keyNvalueN上述語(yǔ)法中,MSET是為多個(gè)鍵設(shè)置值的命令,若是鍵不存在,則創(chuàng)建鍵,否則進(jìn)行覆蓋操作;key1、key2、...、keyN表示鍵;value1、value2、...、valueN表示要為對(duì)應(yīng)鍵設(shè)置的值。
7.4使用redis-cli操作Redis操作鍵MSET命令2下面,我們演示為鍵brand1設(shè)置值heima、鍵brand2設(shè)置值chuanzhihui、鍵brand3設(shè)置值kudingyu、鍵brand4設(shè)置值boxuegu、鍵brand5設(shè)置值czzxxy、鍵brand6設(shè)置值yuanxiaobang,具體如下::6379>msetbrand1"heima"brand2"chuanzhihui“
brand3"kudingyu“brand4"boxuegu"brand5"czzxxy"
brand6"yuanxiaobang"OK從上述返回結(jié)果“OK”可以看出,我們成功為鍵brand1、brand2、brand3、brand4、brand5和brand6分別指定值。
7.4使用redis-cli操作Redis操作鍵KEYS命令3使用KEYS命令查找所有符合給定模式pattern(正則表達(dá)式)的鍵,具體語(yǔ)法如下:KEYSPATTERN上述語(yǔ)法中,KEYS是查找所有符合給定模式pattern(正則表達(dá)式)鍵的命令;PATTERN是模式,也可以為正則表達(dá)式。
7.4使用redis-cli操作Redis操作鍵KEYS命令3下面,我們演示查找所有鍵,具體如下::6379>keys*1)"brand2"2)"brand5"3)"brand4"4)"brand6"5)"brand3"6)"company"7)"brand1“從上述返回結(jié)果可以看出,一共有七個(gè)鍵,其中鍵company是執(zhí)行“SET”命令創(chuàng)建的,鍵brand1、brand2、brand3、brand4、brand5、brand6是執(zhí)行“MSET”命令創(chuàng)建。
7.4使用redis-cli操作Redis操作鍵GET命令4使用GET命令獲取指定鍵的值,具體語(yǔ)法如下:GETkey上述語(yǔ)法中,GET是用于獲取指定鍵的值的命令;key表示鍵。下面,我們演示獲取鍵company的值,具體如下::6379>getcompany"itcast"從上述返回結(jié)果“itcast”可以看出,鍵company的值為itcast,說(shuō)明我們成功獲取到鍵company的值。
7.4使用redis-cli操作Redis操作鍵MGET命令5使用MGET命令獲取多個(gè)鍵的對(duì)應(yīng)值,具體語(yǔ)法如下:MGETkey1key2...上述語(yǔ)法中,MGET是用于獲取指定多個(gè)鍵的值的命令;key1、key2...表示多個(gè)鍵。
7.4使用redis-cli操作Redis操作鍵MGET命令5下面,我們演示獲取鍵brand1、brand2、brand3以及brand的值,具體如下::6379>mgetbrand1brand2brand3brand1)"heima"2)"chuanzhihui"3)"kudingyu"4)(nil)從上述返回結(jié)果可以看出,鍵brand1、brand2以及brand3的值分別為heima、chuanzhihui及kudingyu,而鍵brand的值為nil,這是因?yàn)殒Ibrand并不存在,因此返回特殊值nil。
7.4使用redis-cli操作Redis操作鍵DUMP命令6使用DUMP命令序列化指定的鍵,并返回被序列化的值,具體語(yǔ)法如下:DUMPkey上述語(yǔ)法中,DUMP是用于序列化指定的鍵并返回被序列化的值的命令;key表示鍵。下面,我們演示序列化鍵company,并返回被序列化的值,具體如下::6379>dumpcompany"\x00\x06itcast\t\x00\x05\x99\x0bu\x97\x8d\xd4\xc1"從上述返回結(jié)果可以看出,鍵company已經(jīng)被序列化,并且被序列化的值為“\x00\x06itcast\t\x00\x05\x99\x0bu\x97\x8d\xd4\xc1”。
7.4使用redis-cli操作Redis操作鍵EXISTS命令7使用EXISTS命令判斷指定鍵是否存在,具體語(yǔ)法如下:EXISTSkey上述語(yǔ)法中,EXISTS是用于判斷指定鍵是否存在的命令;key表示鍵。下面,我們演示判斷鍵brand6和brand7是否存在,若存在,則返回1,反之返回0,具體如下::6379>existsbrand6(integer)1:6379>existsbrand7(integer)0從上述返回結(jié)果可以看出,鍵brand6存在,而鍵brand7不存在。
7.4使用redis-cli操作Redis操作鍵TYPE命令8使用TYPE命令查看指定鍵的類型,具體語(yǔ)法如下:TYPEkey上述語(yǔ)法中,TYPE是用于查看指定鍵的類型的命令;key表示鍵。下面,我們演示查看鍵company的類型,具體如下::6379>typecompanystring從上述返回結(jié)果可以看出,鍵company的類型為string類型。
7.4使用redis-cli操作Redis操作鍵RENAME命令9使用RENAME命令修改指定鍵的名稱,具體語(yǔ)法如下:RENAMEkeynewkey上述語(yǔ)法中,RENAME是用于修改指定鍵名稱的命令;key表示舊鍵;newkey表示新鍵。
7.4使用redis-cli操作Redis操作鍵RENAME命令9下面,我們演示將鍵company改為newcompany,并執(zhí)行“keys*”命令,查看鍵是否被修改成功,具體如下::6379>renamecompanynewcompanyOK:6379>keys*1)"brand1"2)"newcompany"3)"brand4"4)"brand2"5)"brand3"6)"brand5"7)"brand6"從上述返回結(jié)果可以看出,鍵company已經(jīng)更改為newcompany。
7.4使用redis-cli操作Redis操作鍵EXPIRE命令使用EXPIRE命令設(shè)置鍵的生存時(shí)間,具體語(yǔ)法如下:EXPIREkeyseconds上述語(yǔ)法中,EXPIRE是用于設(shè)置指定鍵生存時(shí)間的命令;key表示鍵;seconds表示設(shè)置的時(shí)間,以秒計(jì)。下面,我們演示將鍵brand6的生存時(shí)間設(shè)置為30s,具體如下:10:6379>expirebrand630(integer)1從上述返回結(jié)果“1”可以看出,鍵brand6的生存時(shí)間已經(jīng)成功設(shè)置為30s,即30s后該鍵會(huì)消失。讀者這里可以設(shè)置較長(zhǎng)的時(shí)間,便于后續(xù)演示TTL命令和PERSIST命令。
7.4使用redis-cli操作Redis操作鍵TTL命令使用TTL命令查看指定鍵的剩余過(guò)期時(shí)間,具體語(yǔ)法如下:TTLkey上述語(yǔ)法中,TTL是用于查看指定鍵剩余過(guò)期時(shí)間的命令;key表示鍵。下面,我們演示查看鍵brand6的剩余過(guò)期時(shí)間,具體如下:11:6379>ttlbrand6(integer)25從上述返回結(jié)果“25”可以看出,鍵brand6的剩余生存時(shí)間為25s。若是鍵brand6不存在(即過(guò)期)則返回“-2”,執(zhí)行“keys*”命令,我們會(huì)發(fā)現(xiàn)鍵brand6已經(jīng)不存在了。
7.4使用redis-cli操作Redis操作鍵PERSIST命令使用PERSIST命令移除指定鍵的生存時(shí)間,即將鍵從帶生存時(shí)間的狀態(tài)轉(zhuǎn)換為持久存在的狀態(tài),具體語(yǔ)法如下:PERSISTkey上述語(yǔ)法中,PERSIST是用于移除指定鍵的生存時(shí)間的命令;key表示鍵。下面,我們演示移除鍵brand6的生存時(shí)間,具體如下:12:6379>persistbrand6(integer)1從上述返回結(jié)果“1”可以看出,鍵brand6的生存時(shí)間已被成功移除。
7.4使用redis-cli操作Redis操作鍵Del命令使用DEL命令刪除指定鍵,具體語(yǔ)法如下:DELkey上述語(yǔ)法中,DEL是用于刪除指定鍵的命令;key表示鍵。13
7.4使用redis-cli操作Redis操作鍵Del命令下面,我們演示刪除鍵brand6,并執(zhí)行“keys*”命令,查看鍵brand6是否還存在(注意,若前面鍵brand6設(shè)置的生存時(shí)間較短的話,未執(zhí)行刪除操作,該鍵就已經(jīng)不存在了),具體如下:13:6379>delbrand6(integer)1:6379>keys*1)"brand2"2)"brand5"3)"brand3"4)"brand4"5)"newcompany"6)"brand1"從上述返回結(jié)果可以看出,鍵brand6已經(jīng)被成功刪除。
7.4使用redis-cli操作Redis操作字符串String字符串是Redis中最基本也是最簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu),Redis為String字符串提供了相關(guān)操作命令。下面,通過(guò)一張表來(lái)介紹一下常用的String操作命令及相關(guān)說(shuō)明,具體如表所示。操作命令相關(guān)說(shuō)明SET為指定字符串鍵設(shè)置值MSET為多個(gè)字符串鍵設(shè)置值GET獲取指定字符串key中的值MGET獲取多個(gè)字符串鍵的對(duì)應(yīng)值GETSET獲取指定字符串鍵的舊值并設(shè)置新值STRLEN獲取字符串值的字節(jié)長(zhǎng)度
7.4使用redis-cli操作Redis操作字符串續(xù)表操作命令相關(guān)說(shuō)明GETRANGE獲取字符串鍵指定索引范圍的值內(nèi)容SETRANGE為字符串鍵的指定索引位置設(shè)置值A(chǔ)PPEND追加新內(nèi)容到值的末尾
7.4使用redis-cli操作Redis操作字符串SET命令1使用SET命令為指定字符串鍵設(shè)置值,該命令與操作鍵的命令一致,具體語(yǔ)法如下:SETkeyvalue上述語(yǔ)法中,SET是為指定字符串設(shè)置值的命令,若是所指定的字符串鍵不存在,則進(jìn)行創(chuàng)建操作,否則進(jìn)行覆蓋操作;key表示字符串鍵;value表示為字符串鍵設(shè)置的值。下面,我們演示為字符串鍵website設(shè)置值,具體如下::6379>setwebsite""OK從上述返回結(jié)果“OK”可以看出,我們成功為字符串鍵website設(shè)置值。
7.4使用redis-cli操作Redis操作字符串MSET命令2使用MSET命令為多個(gè)字符串鍵設(shè)置對(duì)應(yīng)的值,具體語(yǔ)法如下:MSETkeyvalue[keyvalue...]上述語(yǔ)法中,MSET是為多個(gè)字符串鍵設(shè)置對(duì)應(yīng)值的命令,若是該字符串不存在,則進(jìn)行創(chuàng)建操作,否則進(jìn)行覆蓋操作;key表示字符串的鍵;value表示字符串鍵設(shè)置的值;[keyvalue...]表示可以為多個(gè)字符串鍵設(shè)置對(duì)應(yīng)的值。
7.4使用redis-cli操作Redis操作字符串MSET命令2下面,我們演示為字符串鍵website1設(shè)置值、字符串鍵website2設(shè)置值及字符串鍵website3設(shè)置值,具體如下::6379>msetwebsite1""website2
""website3""OK從上述返回結(jié)果“OK”可以看出,我們成功為字符串鍵website1、website2以及website3分別設(shè)置對(duì)應(yīng)的值。
7.4使用redis-cli操作Redis操作字符串GET命令3使用GET命令獲取指定字符串鍵的值,具體語(yǔ)法如下:GETkey上述語(yǔ)法中,GET是用于獲取指定字符串鍵值的命令;key表示字符串鍵。下面,我們演示獲取字符串website的值,具體如下::6379>getwebsite""從上述返回結(jié)果可以看出,字符串鍵website的值為,說(shuō)明我們成功獲取到字符串鍵website的值。
7.4使用redis-cli操作Redis操作字符串MGET命令4使用MGET命令獲取多個(gè)字符串鍵的對(duì)應(yīng)值,具體語(yǔ)法如下:MGETkey1key2...上述語(yǔ)法中,MGET是用于獲取指定多個(gè)鍵的值的命令;key1、key2...表示多個(gè)鍵。
7.4使用redis-cli操作Redis操作字符串MGET命令4下面,我們演示獲取字符串鍵website1、website2、website3以及website5的值,具體如下::6379>mgetwebsite1website2website3website51)""2)""3)""4)(nil)從上述返回結(jié)果可以看出,字符串鍵website1、website2、website3的值分別為、及,而字符串鍵website5的值為nil,這是因?yàn)樽址Iwebsite5并不存在,因此返回特殊值nil。
7.4使用redis-cli操作Redis操作字符串GETSET命令5使用GETSET命令獲取指定字符串鍵的舊值并設(shè)置新值,具體語(yǔ)法如下:GETSETkeyvalue上述語(yǔ)法中,GETSET是用于獲取指定字符串鍵的舊值并設(shè)置新值;key表示字符串鍵;value表示字符串鍵的新值。若指定字符串鍵存在,則返回該鍵的舊值,反之返回nil特殊值。
7.4使用redis-cli操作Redis操作字符串GETSET命令5下面,我們演示獲取字符串鍵website4的舊值并設(shè)置新值,并執(zhí)行“getsetwebsite4""”獲取該字符串鍵website的舊值并設(shè)置新值,然后執(zhí)行“getwebsite4”命令,查看字符串鍵website4是否被成功設(shè)置新值,具體如下::6379>getsetwebsite4""(nil):6379>getsetwebsite4"""":6379>getwebsite4""從上述返回結(jié)果可以看出,最開(kāi)始字符串鍵website4不存在,因此返回特殊值nil,當(dāng)?shù)谝淮螆?zhí)行“getset”命令后,字符串鍵website4就被指定值為,第二次執(zhí)行“getset”命令設(shè)置字符串鍵website4新值后,返回了字符串鍵website4的舊值。
7.4使用redis-cli操作Redis操作字符串STRLEN命令6使用STRLEN命令獲取指定字符串鍵值的長(zhǎng)度,具體語(yǔ)法如下:STRLENkey上述語(yǔ)法中,STRLEN是用于獲取指定字符串鍵值的長(zhǎng)度;key表示字符串鍵。下面,我們演示獲取字符串鍵website4值的長(zhǎng)度,具體如下::6379>strlenwebsite4(integer)13從上述返回結(jié)果“13”可以看出,字符串鍵website4的值的長(zhǎng)度為13,即的長(zhǎng)度為13個(gè)字節(jié)長(zhǎng)度。
7.4使用redis-cli操作Redis操作字符串GETRANGE命令7使用GETRANGE命令獲取字符串鍵指定索引范圍的值內(nèi)容,具體語(yǔ)法如下:GETRANGEkeystartend上述語(yǔ)法中,GETRANGE是用于獲取字符串鍵指定索引范圍的值內(nèi)容;key表示字符串鍵;start表示范圍的起始索引;end表示范圍的結(jié)束索引。下面,我們演示獲取字符串鍵website指定索引范圍在[4,9]的值內(nèi)容,具體如下::6379>getrangewebsite49"itcast"從上述返回結(jié)果“itcast”可以看出,字符串鍵website的值在索引范圍為[4,9]的內(nèi)容為itcast。
7.4使用redis-cli操作Redis操作字符串SETRANGE命令8使用SETRANGE命令為字符串鍵的指定索引位置替換值,具體語(yǔ)法如下:SETRANGEkeyoffsetvalue上述語(yǔ)法中,SETRANGE是用于為字符串鍵的指定索引位置替換值的命令;key表示字符串鍵;offset表示偏移量;value表示為字符串鍵的指定索引位置替換值。
7.4使用redis-cli操作Redis操作字符串SETRANGE命令8下面,我們演示為字符串鍵website的索引為4的位置替換值為nosql,并通過(guò)執(zhí)行“getwebsite”獲取該字符串鍵的值,查看是否成功為字符串鍵website替換值,具體如下::6379>setrangewebsite4"nosql"(integer)13:6379>getwebsite""從上述返回結(jié)果可以看出,字符串鍵website在索引為4的位置處替換值為nosql,由于itcast包含5個(gè)字節(jié),從位置為0處作為起點(diǎn),位置為4處作為終點(diǎn),替換為nosql,因此說(shuō)明我們成功為字符串鍵website的指定位置替換值。
7.4使用redis-cli操作Redis操作字符串APPEND命令9使用APPEND命令為指定字符串鍵的值末尾追加新內(nèi)容,具體語(yǔ)法如下:APPENDkeyvalue上述語(yǔ)法中,APPEND是用于為指定字符串鍵的值末尾追加新內(nèi)容的命令;key表示字符串鍵;value表示追加的新內(nèi)容。
7.4使用redis-cli操作Redis操作字符串APPEND命令9下面,我們演示為字符串鍵website的值的末尾追加itcast,并通過(guò)執(zhí)行“getwebsite”獲取該字符串鍵的值,查看是否成功為字符串鍵website的值的末尾追加新內(nèi)容,具體如下::6379>appendwebsite"itcast"(integer)19:6379>getwebsite"itcast"從上述返回結(jié)果可以看出,字符串鍵website的值末尾的內(nèi)容為itcast,因此說(shuō)明我們成功為字符串鍵website的值末尾追加內(nèi)容itcast。
7.4使用redis-cli操作Redis操作列表List列表是一種線性的有序結(jié)構(gòu),Redis為L(zhǎng)ist列表提供了相關(guān)的操作命令。下面,通過(guò)一張表來(lái)介紹一下常用的List操作命令及相關(guān)說(shuō)明,具體如表所示。操作命令相關(guān)說(shuō)明RPUSH將一個(gè)或多個(gè)元素推入到列表的右端LPUSH將一個(gè)或多個(gè)元素推入到列表的左端LRANGE獲取列表指定索引范圍內(nèi)的元素LINDEX獲取列表指定索引位置上的元素RPOP彈出列表最右端的元素LPOP彈出列表最左端的元素LLEN獲取指定列表的長(zhǎng)度LREM移除列表中的指定元素
7.4使用redis-cli操作Redis操作列表RPUSH命令1使用RPUSH命令將一個(gè)或多個(gè)元素推入到列表的右端,具體語(yǔ)法如下:RPUSHkeyvalue上述語(yǔ)法中,RPUSH是將一個(gè)或多個(gè)元素推入到列表的右端的命令,若是所指定的列表不存在,則會(huì)創(chuàng)建空列表,然后往該列表中推入元素;key表示列表;value表示為指定列表插入的元素值。
7.4使用redis-cli操作Redis操作列表RPUSH命令1下面,我們演示依次將元素blue、green、purple、red、white推入到列表color的右端,并執(zhí)行“l(fā)rangecolor0-1”命令,查看是否已經(jīng)將五個(gè)元素推入到列表color的右端,具體如右邊所示::6379>rpushcolor"blue"(integer)1:6379>rpushcolor"green"(integer)2:6379>rpushcolor"purple"(integer)3:6379>rpushcolor"red"(integer)4:6379>rpushcolor"white"(integer)5:6379>lrangecolor0-11)"blue"2)"green"3)"purple"4)"red"5)"white"從返回結(jié)果可以看出,我們成功將元素blue、green、purple、red、white五個(gè)元素推入到列表color的右端。
7.4使用redis-cli操作Redis操作列表LPUSH命令2使用LPUSH命令將一個(gè)或多個(gè)元素推入到列表的左端,具體語(yǔ)法如下:LPUSHkeyvalue上述語(yǔ)法中,LPUSH是將一個(gè)或多個(gè)元素推入到列表的左端的命令,若是所指定的列表不存在,則會(huì)創(chuàng)建空列表,然后往該列表中推入元素;key表示列表;value表示為指定列表推入的元素值。
7.4使用redis-cli操作Redis操作列表LPUSH命令2下面,我們演示依次將元素apple、banana、mango推入到列表color的左端,并執(zhí)行“l(fā)rangecolor0-1”命令,查看是否已經(jīng)將三個(gè)元素推入到列表color的左端,具體如右邊所示::6379>lpushcolor"apple"(integer)6:6379>lpushcolor"banana"(integer)7:6379>lpushcolor"mango"(integer)8:6379>lrangecolor0-11)"mango"2)"banana"3)"apple"4)"blue"5)"green"6)"purple"7)"red"8)"white從返回結(jié)果可看出,我們成功往列表中推入八個(gè)元素,其中有五個(gè)元素是執(zhí)行“rpush”命令推入到列表color中,三個(gè)元素是執(zhí)行“l(fā)push”命令推入到列表color中。
7.4使用redis-cli操作Redis操作列表LRANGE命令3使用LRANGE命令獲取列表指定索引范圍內(nèi)的元素,具體語(yǔ)法如下:LRANGEkeystartstop上述語(yǔ)法中,LRANGE是用于獲取列表指定索引范圍內(nèi)的元素;key表示列表;start表示起始索引;end表示結(jié)束索引。
7.4使用redis-cli操作Redis操作列表LRANGE命令3下面,我們演示獲取列表color指定索引范圍[0,7]的元素,具體如下::6379>lrangecolor071)"mango"2)"banana"3)"apple"4)"blue"5)"green"6)"purple"7)"red"8)"white"從上述返回結(jié)果可以看出,我們成功獲取列表color中索引在[0,7]范圍的八個(gè)元素,若是想要獲取全部元素,則可以指定范圍為[0,-1]。
7.4使用redis-cli操作Redis操作列表LINDEX命令4使用LINDEX命令獲取列表指定索引位置上的元素,具體語(yǔ)法如下:LINDEXkeyindex上述語(yǔ)法中,LINDEX是用于獲取列表指定索引位置上的元素的命令;key表示列表;index表示索引位置。下面,我們演示獲取列表color中索引位置為3的元素,具體如下::6379>lindexcolor3"blue"從上述返回結(jié)果“blue”可以看出,列表color中索引位置為3的元素是blue。
7.4使用redis-cli操作Redis操作列表RPOP命令5使用RPOP命令移除列表最右端的元素,具體語(yǔ)法如下:RPOPkey上述語(yǔ)法中,RPOP是用于移除列表最右端元素的命令;key表示列表。下面,我們演示移除列表color最右端的元素,并執(zhí)行“l(fā)rangecolor0-1”命令,查看最右端的元素是否被移除,具體如下::6379>rpopcolor"white":6379>lrangecolor0-11)"mango"2)"banana"3)"apple"4)"blue"5)"green"6)"purple"7)"red"從返回結(jié)果可以看出,列表color最右端的元素white已經(jīng)不存在了,因此說(shuō)明我們成功移除列表color最右端的元素。
7.4使用redis-cli操作Redis操作列表LPOP命令6使用LPOP命令移除列表最左端的元素,具體語(yǔ)法如下:LPOPkey上述語(yǔ)法中,RPOP是用于移除列表最右端元素的命令;key表示列表。下面,我們演示移除列表color最左端的元素,并執(zhí)行“l(fā)rangecolor0-1命令,查看最左端的元素是否被移除,具體如下::6379>lpopcolor"mango":6379>lrangecolor0-11)"banana"2)"apple"3)"blue"4)"green"5)"purple"6)"red"從返回結(jié)果可以看出,列表color最左端的元素mango已經(jīng)不存在了,因此說(shuō)明我們成功移除列表color最左端的元素。
7.4使用redis-cli操作Redis操作列表LLEN命令7使用LLEN命令獲取列表中值的長(zhǎng)度,也就是元素的個(gè)數(shù),具體語(yǔ)法如下:LLENkey上述語(yǔ)法中,LIND是用于獲取列表中值的長(zhǎng)度的命令;key表示列表。下面,我們演示獲取列表color中值的長(zhǎng)度,也就是元素的個(gè)數(shù),具體如下::6379>llencolor(integer)6從上述返回結(jié)果“6”可以看出,列表color中值的長(zhǎng)度為6,即說(shuō)明列表color中共有六個(gè)元素,即元素banana、apple、blue、green、purple、red。
7.4使用redis-cli操作Redis操作列表LREM命令8使用LREM命令移除列表中的指定元素,具體語(yǔ)法如下:LREMkeycountvalue上述語(yǔ)法中,LREM是用于移除列表中的指定元素的命令;key表示列表;count參數(shù)的值決定了LREM命令移除元素的方式,若是count>0,則從列表頭開(kāi)始向列表尾搜索,移除與value相等的元素,數(shù)量為count的絕對(duì)值;若是count<0,則從列表尾開(kāi)始向列表頭搜索,移除與value相等的元素,數(shù)量為count的絕對(duì)值;若是count=0,移除列表中所有與value相等的值;value表示要移除的元素。
7.4使用redis-cli操作Redis操作列表LREM命令8下面,先執(zhí)行“rpushcolor"hello""hello""world""hello"”命令,往列表mycolor的右端推入4個(gè)元素,然后再演示從左往右移除列表mycolor中值為hello的兩個(gè)元素,并執(zhí)行“l(fā)rangemycolor0-1命令,查看列表中值為hello的2個(gè)元素是否被移除,具體如下::6379>rpushmycolor"hello""hello""world""hello"(integer)4:6379>lremmycolor-2hello(integer)2:6379>lrangemycolor0-11)"hello"2)"world"從上述返回結(jié)果可以看出,列表mycolor中值為hello的兩個(gè)元素從尾部開(kāi)始移除,因此說(shuō)明我們成功刪除列表mycolor中值為hello的兩個(gè)元素。
7.4使用redis-cli操作Redis操作集合Sets集合是Redis的基本數(shù)據(jù)結(jié)構(gòu)之一。Redis為Sets集合提供了相關(guān)的操作命令。下面,通過(guò)一張表來(lái)介紹一下常用的Sets操作命令及相關(guān)說(shuō)明,具體如表所示。操作命令相關(guān)說(shuō)明SADD將一個(gè)或多個(gè)元素添加到集合中SCARD獲取集合中的元素?cái)?shù)量SMEMBERS獲取集合中的所有元素SISMEMBER檢查指定元素是否存在于集合中SREM移除集合中的一個(gè)或多個(gè)已存在的元素SMOVE將元素從一個(gè)集合移動(dòng)到另一個(gè)集合
7.4使用redis-cli操作Redis操作集合SADD命令1使用SADD命令將一個(gè)或多個(gè)元素添加到集合中,具體語(yǔ)法如下:SADDkeymember[member…]上述語(yǔ)法中,SADD是將一個(gè)或多個(gè)元素添加到集合中的命令,若是所指定的集合不存在,則創(chuàng)建集合,并將元素添加進(jìn)該集合中;key表示集合;member[member…]表示一個(gè)或多個(gè)元素。下面,我們演示將元素redis、mongodb、hbase添加到集合databases中,具體如下::6379>sadddatabases"redis""mongodb""hbase"(integer)3從上述返回結(jié)果“3”可以看出,我們成功將三個(gè)元素添加到集合databases中。
7.4使用redis-cli操作Redis操作集合SCARD命令2使用SCARD命令獲取集合中的元素?cái)?shù)量,具體語(yǔ)法如下:SCARDkey上述語(yǔ)法中,SCARD是獲取集合中元素?cái)?shù)量的命令;key表示集合。下面,我們演示獲取集合databases中的元素?cái)?shù)量,具體如下::6379>scarddatabases(integer)3從上述返回結(jié)果“3”可以看出,集合databases中包含三個(gè)元素。
7.4使用redis-cli操作Redis操作集合SMEMBERS命令3使用SMEMBERS命令獲取集合中的所有元素,具體語(yǔ)法如下:SMEMBERSkey上述語(yǔ)法中,SMEMBERS是用于獲取集合中所有元素的命令;key表示集合。下面,我們演示獲取集合databases中的所有元素,具體如下::6379>smembersdatabases1)"hbase"2)"mongodb"3)"redis"從上述返回結(jié)果可以看出,集合databases中包含的元素為hbase、mongodb以及hbase。
7.4使用redis-cli操作Redis操作集合SISMEMBER命令4使用SISMEMBER命令判斷指定元素是否存在于集合中,具體語(yǔ)法如下:SISMEMBERkeymember上述語(yǔ)法中,SISMEMBER用于判斷指定元素是否存在于集合中的命令;key表示集合;member表示需要判斷的元素。下面,我們演示檢查元素redis是否存在于集合databases,若存在則返回1,反之返回0,具體如下:從上述返回結(jié)果“1”可以看出,元素redis存在于集合databases中。:6379>sismemberdatabasesredis(integer)1
7.4使用redis-cli操作Redis操作集合SREM命令5使用SREM命令移除集合中的一個(gè)或多個(gè)已存在的元素,具體語(yǔ)法如下:SREMkeymember[member…]上述語(yǔ)法中,SREM是用于移除集合中的一個(gè)或多個(gè)已存在元素的命令;key表示集合;member[member…]表示一個(gè)或多個(gè)元素。
7.4使用redis-cli操作Redis操作集合SREM命令5下面,我們演示移除集合databases中的元素hbase,并執(zhí)行“smembersdatabases”命令,查看元素hbase是否被移除,具體如下::6379>sremdatabaseshbase(integer)1:6379>smembersdatabases1)"mongodb"2)"redis"從上述返回結(jié)果可以看出,集合databases中已經(jīng)不存在元素hbase,因此說(shuō)明我們成功移除集合databases中的元素hbase。
7.4使用redis-cli操作Redis操作集合SMOVE命令6使用SMOVE命令將元素從一個(gè)集合移動(dòng)到另一個(gè)集合,具體語(yǔ)法如下:SMOVEsourcedestinationmember上述語(yǔ)法中,SMOVE是用于將元素從一個(gè)集合移動(dòng)到另一個(gè)集合的命令;source表示原始集合;destination表示目標(biāo)集合;member表示要移動(dòng)的元素。
7.4使用redis-cli操作Redis操作集合SMOVE命令6下面,我們演示將元素redis從集合databases中移動(dòng)到集合databasesNew中(注:首先執(zhí)行“sadddatabasesNew"mysql"”命令,創(chuàng)建集合databasesNew并插入元素“mysql”,并執(zhí)行“smovedatabasesdatabasesNewredis”命令,查看是否成功將元素redis從集合databases中移動(dòng)到databasesNew中,具體如下::6379>sadddatabasesNew"mysql"(integer)1:6379>smovedatabasesdatabasesNewredis(integer)1:6379>smembersdatabasesNew1)"mysql"2)"redis"從上述返回結(jié)果可以看出,集合databasesNew中已經(jīng)存在元素redis,因此說(shuō)明我們成功將元素redis從集合databases中移動(dòng)到databasesNew中。
7.4使用redis-cli操作Redis操作散列Hash散列也是Redis的基本數(shù)據(jù)結(jié)構(gòu)之一。Redis為Hash散列提供了客戶端的操作命令。下面,通過(guò)一張表來(lái)介紹一下常用的Hash操作命令及相關(guān)說(shuō)明,具體如表所示。操作命令相關(guān)說(shuō)明HSET為散列中的指定鍵設(shè)置值HMSET為散列中多個(gè)鍵設(shè)置值HGET獲取散列中指定鍵的值HMGET獲取散列中多個(gè)鍵的值HGETALL獲取散列中的所有鍵值對(duì)HKEYS獲取散列中的所有鍵HVALS獲取散列中的所有鍵的值HDEL刪除散列中指定鍵及其相對(duì)應(yīng)的值
7.4使用redis-cli操作Redis操作散列HSET命令1使用HSET命令為散列中指定鍵設(shè)置值,具體語(yǔ)法如下:HSETkeyfieldvalue上述語(yǔ)法中,HSET是用于為散列中指定鍵設(shè)置值的命令,若是散列不存在,則會(huì)創(chuàng)建一個(gè)新的散列,并進(jìn)行HSET操作,反之進(jìn)行覆蓋操作;key表示散列;field表示散列中的鍵;value表示鍵對(duì)應(yīng)的值。
7.4使用redis-cli操作Redis操作散列HSET命令1下面,我們演示為散列article中的鍵title設(shè)置值greeting,若是散列article中不存在指定鍵title,則進(jìn)行創(chuàng)建和賦值操作,并返回1,若是散列article中存在鍵title,則進(jìn)行覆蓋操作,并返回0,具體如下::6379>hsetarticletitle"greeting"(integer)1從上述返回結(jié)果“1”可以看出,散列article中不存在鍵title,因此散列article會(huì)自動(dòng)創(chuàng)建鍵title,并為其設(shè)置值greeting。
7.4使用redis-cli操作Redis操作散列HMSET命令2使用HSET命令為散列中多個(gè)鍵設(shè)置值,具體語(yǔ)法如下:HMSETkeyfieldvalue[fieldvalue...]上述語(yǔ)法中,HMSET是用于為散列中的多個(gè)鍵設(shè)置值的命令;key表示散列;fieldvalue[fieldvalue...]表示散列中的一個(gè)或多個(gè)鍵及其對(duì)應(yīng)的值。下面,我們演示為散列article中的鍵content、author分別設(shè)置值HelloWorld、peter,具體如下::6379>hmsetarticlecontent"HelloWorld"author"peter"OK從上述返回結(jié)果“OK”可以看出,我們成功為散列article中的鍵content、author設(shè)置值。
7.4使用redis-cli操作Redis操作散列HGET命令3使用HGET命令獲取散列中指定鍵的值,具體語(yǔ)法如下:HGETkeyfield上述語(yǔ)法中,HGET是用于獲取散列中指定鍵的值的命令;key表示散列;field表示散列中的鍵。下面,我們演示獲取散列article中鍵title的值,具體如下::6379>hgetarticletitle"greeting"從上述返回結(jié)果可以看出,散列article中鍵title的值為greeting。
7.4使用redis-cli操作Redis操作散列HMGET命令4使用HMGET命令獲取散列中多個(gè)鍵的值,具體語(yǔ)法如下:HMGETkeyfield[field...]上述語(yǔ)法中,HMGET是用于獲取散列中多個(gè)鍵的值的命令;key表示散列;field[field...]表示散列中的一個(gè)或多個(gè)鍵。下面,我們演示獲取散列article中鍵content和鍵author的值,具體如下::6379>hmgetarticlecontentauthor1)"HelloWorld"2)"peter"從上述返回結(jié)果可以看出,散列article中鍵content和鍵author的值分別為HelloWorld和peter。
7.4使用redis-cli操作Redis操作散列HGETALL命令5使用HGETALL命令獲取散列中的所有鍵值對(duì),具體語(yǔ)法如下:HGETALLkey上述語(yǔ)法中,HMGET是用于獲取散列中的所有鍵值對(duì)的命令;key表示散列。下面,我們演示獲取散列article中所有的鍵值對(duì),具體如下::6379>hgetallarticle1)"title"2)"greeting"3)"content"4)"HelloWorld"5)"author"6)"peter"從上述返回結(jié)果可以看出,散列article中所有的鍵值對(duì)均打印出來(lái)。
7.4使用redis-cli操作Redis操作散列HKEYS命令6使用HKEYS命令獲取散列中的所有鍵,具體語(yǔ)法如下:HKEYSkey上述語(yǔ)法中,HKEYS是用于獲取散列中的所有鍵的命令;key表示散列。下面,我們演示獲取散列article中所有的鍵,具體如下::6379>hkeysarticle1)"title"2)"content"3)"author"從上述返回結(jié)果可以看出,散列article中一共有三個(gè)鍵,分別為鍵title、content、author。
7.4使用redis-cli操作Redis操作散列HVALS命令7使用HVALS命令獲取散列中的所有鍵的值,具體語(yǔ)法如下:HVALSkey上述語(yǔ)法中,HVALS是用于獲取散列中的所有鍵的值的命令;key表示散列。下面,我們演示獲取散列article中所有鍵的值,具體如下::6379>hvalsarticle1)"greeting"2)"HelloWorld"3)"peter"從上述返回結(jié)果可以看出,散列article中鍵的值分別為greeting、HelloWorld、peter。
7.4使用redis-cli操作Redis操作散列HDEL命令8使用HDEL命令刪除散列中指定鍵及其相對(duì)應(yīng)的值,具體語(yǔ)法如下:HDELkeyfield[field...]上述語(yǔ)法中,HDEL是用于刪除散列中指定鍵及其相對(duì)應(yīng)的值的命令;key表示散列;field[field...]表示散列中的一個(gè)或多個(gè)鍵。
7.4使用redis-cli操作Redis操作散列HDEL命令8下面,我們演示刪除散列article中鍵title及其對(duì)應(yīng)的值greeting,并通過(guò)執(zhí)行“hgetallarticle”命令,查看鍵title及其對(duì)應(yīng)的值greeting是否被刪除,具體如下::6379>hdelarticletitle(integer)1:6379>hgetallarticle1)"content"2)"HelloWorld"3)"author"4)"peter"從上述返回結(jié)果可以看出,散列article中已經(jīng)不存在鍵title及其對(duì)應(yīng)值greeting,因此說(shuō)明我們成功刪除散列article中鍵title及其對(duì)應(yīng)的值greeting。
7.4使用redis-cli操作Redis操作有序集合SortedSets有序集合是Redis中最為靈活的數(shù)據(jù)結(jié)構(gòu)。Redis為SortedSets有序集合提供了客戶端的操作命令。下面,通過(guò)一張表來(lái)介紹一下常用的SortedSets操作命令及相關(guān)說(shuō)明,具體如表所示。操作命令相關(guān)說(shuō)明ZADD為有序集合添加一個(gè)或多個(gè)鍵值對(duì)ZCARD獲取有序集合中元素的個(gè)數(shù)ZCOUNT統(tǒng)計(jì)有序集合中指定分值范圍內(nèi)的元素個(gè)數(shù)ZRANGE獲取有序集合中指定索引范圍內(nèi)的元素ZSCORE獲取有序集合中指定元素的分值ZREM移除有序集合中的指定元素
7.4使用redis-cli操作Redis操作有序集合ZADD命令1使用ZADD命令為有序集合添加一個(gè)或多個(gè)鍵值對(duì),具體語(yǔ)法如下:ZADDkey[NX|XX][CH][INCR]scoremember[scoremember...]上述語(yǔ)法中,ZADD是用于為有序集合添加一個(gè)或多個(gè)鍵值對(duì)的命令;key表示有序集合;[NX|XX]、[CH]、[INCR]為可選參數(shù),其中,[NX|XX]表示不更新或更新存在的元素,NX表示不只添加新元素,XX表示不添加新元素;[CH]表示返回發(fā)生變化的元素總數(shù);[INCR]表示指定元素按照分值進(jìn)行遞增操作;scoremember[scoremember...]表示有序集合的一個(gè)或多個(gè)的鍵值對(duì),其中score表示鍵值對(duì)中的鍵,即分值,member表示鍵值對(duì)中的值,即元素。
7.4使用redis-cli操作Redis操作有序集合ZADD命令1下面,我們演示為有序集合salary添加三個(gè)鍵值對(duì),分別為“分值5000,元素Peter”、“分值3500,元素Tom”以及“分值6000,元素Jack”,具體如下::6379>zaddsalary5000"Peter"3500"Tom"6000"Jack"(integer)3從上述返回結(jié)果“3”可以看出,有序集合salary中已經(jīng)成功添加三個(gè)鍵值對(duì)。
7.4使用redis-cli操作Redis操作有序集合ZCARD命令2使用ZCARD命令獲取有序集合中元素的個(gè)數(shù),具體語(yǔ)法如下:ZCARDkey上述語(yǔ)法中,ZCARD是用于獲取有序集合中元素的個(gè)數(shù)的命令;key表示有序集合。下面,我們演示獲取有序集合salary中元素的個(gè)數(shù),具體如下::6379>zcardsalary(integer)3從上述返回結(jié)果“3”可以看出,有序集合salary中有三個(gè)元素。
7.4使用redis-cli操作Redis操作有序集合ZCOUNT命令3使用ZCOUNT命令統(tǒng)計(jì)有序集合中指定分值范圍內(nèi)的元素個(gè)數(shù),具體語(yǔ)法如下:ZCOUNTkeyminmax上述語(yǔ)法中,ZCOUNT是用于統(tǒng)計(jì)有序集合中指定分值范圍內(nèi)的元素個(gè)數(shù)的命令;key表示有序集合;min表示區(qū)間范圍的最小值;max表示分值范圍的最大值。下面,我們演示統(tǒng)計(jì)有序集合salary中分值范圍在[2000,5000]內(nèi)的元素個(gè)數(shù),具體如下::6379>zcountsalary20005000(integer)2從上述返回結(jié)果“2”可以看出,有序集合salary中有兩個(gè)元素的分值在[2000,5000]范圍之內(nèi)。
7.4使用redis-cli操作Redis操作有序集合ZRANGE命令4使用ZRANGE命令獲取有序集合中指定索引范圍內(nèi)的元素,具體語(yǔ)法如下:ZRANGEkeystartstop上述語(yǔ)法中,ZRANGE是用于獲取有序集合中指定索引范圍內(nèi)元素的命令;key表示有序集合;start表示起始索引;stop表示終止索引。下面,我們演示獲取有序集合salary中指定索引范圍[0,1]內(nèi)的元素,具體如下::6379>zrangesalary011)"Tom"2)"Peter"從上述返回結(jié)果可以看出,有序集合salary中索引范圍在[0,1]內(nèi)的元素有兩個(gè),分別是元素Tom和Peter。
7.4使用redis-cli操作Redis操作有序集合ZSCORE命令5使用ZSCORE命令獲取
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年河北省公需課學(xué)習(xí)-環(huán)境保護(hù)稅征收管理實(shí)務(wù)1727
- 2025年會(huì)計(jì)應(yīng)用軟件題庫(kù)及答案
- 民生銀行筆試題庫(kù)及答案
- 山東醫(yī)師職稱考試題及答案
- 適合初中寫的試卷及答案
- 外包剪輯合同范本
- 安徽自考會(huì)計(jì)真題及答案
- 鴻基租房中介合同范本
- 私宅和土地合同范本
- 石材直播供貨合同范本
- 2024版商品混凝土委托加工合同書范本
- 阿特拉斯空壓機(jī)-培訓(xùn)資料
- 2024年江蘇省海洋知識(shí)競(jìng)賽備考試題庫(kù)(含答案)
- 高一語(yǔ)文經(jīng)典古代詩(shī)詞賞析
- 協(xié)助扣劃存款通知書
- 自動(dòng)控制原理課程設(shè)計(jì)報(bào)告恒溫箱
- 江西d照駕駛員理論考試
- GB/T 30340-2013機(jī)動(dòng)車駕駛員培訓(xùn)機(jī)構(gòu)資格條件
- GB/T 19215.1-2003電氣安裝用電纜槽管系統(tǒng)第1部分:通用要求
- GB/T 13298-2015金屬顯微組織檢驗(yàn)方法
- 滴滴打車用戶出行習(xí)慣報(bào)告
評(píng)論
0/150
提交評(píng)論