Redis基礎(chǔ)數(shù)據(jù)類型有哪些

這篇文章主要介紹“redis基礎(chǔ)數(shù)據(jù)類型有哪些”,在日常操作中,相信很多人在Redis基礎(chǔ)數(shù)據(jù)類型有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Redis基礎(chǔ)數(shù)據(jù)類型有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比盂縣網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式盂縣網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋盂縣地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。

安裝Redis

在學(xué)習(xí)之前,我們要先自己安裝一個Redis環(huán)境用來自己動手操作,感受一下。

Windows

下載地址:

https://github.com/MSOpenTech/redis/releases

Redis基礎(chǔ)數(shù)據(jù)類型有哪些

Windows用戶可以在這個地址下載相應(yīng)版本的壓縮包,在C盤進(jìn)行解壓,解壓后,將目錄重命名為redis。在cmd中進(jìn)入該目錄,然后運(yùn)行redis-server.exe redis.windows.conf。另外,也可以把目錄加到環(huán)境變量中,這樣就不需要再cd進(jìn)入這個目錄了。

Redis的server安裝好后,再打開一個新的cmd, 運(yùn)行redis-cli.exe -h 127.0.0.1 -p 6379,就可以開始進(jìn)行操作了。其中-h參數(shù)表示host,-p參數(shù)表示port,可以省略,默認(rèn)是6379。

Linux

$ wget http://download.redis.io/releases/redis-4.0.11.tar.gz
$ tar xzf redis-4.0.11.tar.gz
$ cd redis-4.0.11
$ make

執(zhí)行以上命令下載并安裝Redis,接著進(jìn)入src目錄,運(yùn)行redis-server。再執(zhí)行

$ ./redis-cli

就可以開始操作了。

Ubuntu

Ubuntu可以直接使用apt-get安裝

$sudo apt-get update
$sudo apt-get install redis-server

啟動方法這里不再贅述。

Mac

Mac用戶可以使用homebrew安裝Redis

brew install redis

其他方法

除了上述方法以外,我們還可以從GitHub下載源碼,對源碼進(jìn)行編譯。URL是git@github.com:antirez/redis.git。也可以從官網(wǎng)下載Docker,通過運(yùn)行Docker來操作。

基礎(chǔ)數(shù)據(jù)類型

Redis支持5種基礎(chǔ)數(shù)據(jù)類型,下面我們來一一介紹,由于我本身是Java程序員,因此會將這些數(shù)據(jù)類型與Java中的數(shù)據(jù)類型進(jìn)行類比。當(dāng)然,你也可以拿自己熟悉的語言來理解。

String

String是最基本的,也是最常用的類型。它是二進(jìn)制安全的,也就是說,我們可以將對象序列化成json字符串作為value值存入Redis。在分配內(nèi)存時,Redis會為一個字符串分配一些冗余的空間,以避免因字符串的值改變而出現(xiàn)頻繁的內(nèi)存分配操作。當(dāng)字符串長度小于1M時,每次擴(kuò)容都會加倍現(xiàn)有空間,當(dāng)長度大于1M時,每次擴(kuò)容,增加1M,Redis字符串的最大長度是512M。

Hash

Hash是鍵值對集合,相當(dāng)于Java中的HashMap,實(shí)際結(jié)構(gòu)也和HashMap一樣,是數(shù)組+鏈表的結(jié)構(gòu)。所不同的是擴(kuò)容的方式不同,HashMap是進(jìn)行一次rehash,而Redis為了不阻塞服務(wù),會創(chuàng)建一個新的數(shù)組,在查詢時會同時查詢兩個Hash,然后在逐漸將舊的Hash內(nèi)容轉(zhuǎn)移到新的中去。一個Hash最大可以存儲232-1個鍵值對。

List

List相當(dāng)于Java中的LinkedList,它的插入和刪除操作的時間復(fù)雜度為O(1),而查詢操作的時間復(fù)雜度為O(n)。我們可以利用List的rpush、rpop、lpush和lpop命令來構(gòu)建隊列或者棧。列表最多可以存儲232-1個元素。

Set

Set是String類型的無序集合,并且元素唯一,相當(dāng)于Java中的HashSet,它的插入、刪除、查詢操作的時間復(fù)雜度都是O(1)。其最大元素數(shù)也是232-1個。

zset

zset可以看做是Java中SortedSet和HashMap的結(jié)合,一方面它不允許元素重復(fù),另一方面,它通過score為每個元素進(jìn)行排序。

兩個規(guī)則

對于以上5種數(shù)據(jù)結(jié)構(gòu),有兩個通用的規(guī)則:

如果不存在,就先創(chuàng)建,再進(jìn)行操作

如果元素為空,就會釋放內(nèi)存

過期時間

我們可以對上面所有的類型設(shè)置過期時間,如果時間到了,Redis 會自動刪除相應(yīng)的對象。

到此,關(guān)于“Redis基礎(chǔ)數(shù)據(jù)類型有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

分享標(biāo)題:Redis基礎(chǔ)數(shù)據(jù)類型有哪些
文章位置:http://muchs.cn/article34/iehcse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、電子商務(wù)網(wǎng)站改版、企業(yè)網(wǎng)站制作域名注冊、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)