這篇文章主要介紹“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ū)。費用合理售后完善,十多年實體公司更值得信賴。
在學(xué)習(xí)之前,我們要先自己安裝一個Redis環(huán)境用來自己動手操作,感受一下。
Windows
下載地址:
https://github.com/MSOpenTech/redis/releases
Windows用戶可以在這個地址下載相應(yīng)版本的壓縮包,在C盤進行解壓,解壓后,將目錄重命名為redis。在cmd中進入該目錄,然后運行redis-server.exe redis.windows.conf。另外,也可以把目錄加到環(huán)境變量中,這樣就不需要再cd進入這個目錄了。
Redis的server安裝好后,再打開一個新的cmd, 運行redis-cli.exe -h 127.0.0.1 -p 6379,就可以開始進行操作了。其中-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,接著進入src目錄,運行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下載源碼,對源碼進行編譯。URL是git@github.com:antirez/redis.git。也可以從官網(wǎng)下載Docker,通過運行Docker來操作。
Redis支持5種基礎(chǔ)數(shù)據(jù)類型,下面我們來一一介紹,由于我本身是Java程序員,因此會將這些數(shù)據(jù)類型與Java中的數(shù)據(jù)類型進行類比。當(dāng)然,你也可以拿自己熟悉的語言來理解。
String
String是最基本的,也是最常用的類型。它是二進制安全的,也就是說,我們可以將對象序列化成json字符串作為value值存入Redis。在分配內(nèi)存時,Redis會為一個字符串分配一些冗余的空間,以避免因字符串的值改變而出現(xiàn)頻繁的內(nèi)存分配操作。當(dāng)字符串長度小于1M時,每次擴容都會加倍現(xiàn)有空間,當(dāng)長度大于1M時,每次擴容,增加1M,Redis字符串的最大長度是512M。
Hash
Hash是鍵值對集合,相當(dāng)于Java中的HashMap,實際結(jié)構(gòu)也和HashMap一樣,是數(shù)組+鏈表的結(jié)構(gòu)。所不同的是擴容的方式不同,HashMap是進行一次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為每個元素進行排序。
對于以上5種數(shù)據(jù)結(jié)構(gòu),有兩個通用的規(guī)則:
如果不存在,就先創(chuàng)建,再進行操作
如果元素為空,就會釋放內(nèi)存
我們可以對上面所有的類型設(shè)置過期時間,如果時間到了,Redis 會自動刪除相應(yīng)的對象。
到此,關(guān)于“Redis基礎(chǔ)數(shù)據(jù)類型有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
分享標(biāo)題:Redis基礎(chǔ)數(shù)據(jù)類型有哪些
文章位置:http://jinyejixie.com/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)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)