您好,登錄后才能下訂單哦!
這篇文章主要介紹“Redis基礎數據類型有哪些”,在日常操作中,相信很多人在Redis基礎數據類型有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Redis基礎數據類型有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
在學習之前,我們要先自己安裝一個Redis環境用來自己動手操作,感受一下。
Windows
下載地址:
https://github.com/MSOpenTech/redis/releases
Windows用戶可以在這個地址下載相應版本的壓縮包,在C盤進行解壓,解壓后,將目錄重命名為redis。在cmd中進入該目錄,然后運行redis-server.exe redis.windows.conf。另外,也可以把目錄加到環境變量中,這樣就不需要再cd進入這個目錄了。
Redis的server安裝好后,再打開一個新的cmd, 運行redis-cli.exe -h 127.0.0.1 -p 6379,就可以開始進行操作了。其中-h參數表示host,-p參數表示port,可以省略,默認是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
執行以上命令下載并安裝Redis,接著進入src目錄,運行redis-server。再執行
$ ./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。也可以從官網下載Docker,通過運行Docker來操作。
Redis支持5種基礎數據類型,下面我們來一一介紹,由于我本身是Java程序員,因此會將這些數據類型與Java中的數據類型進行類比。當然,你也可以拿自己熟悉的語言來理解。
String
String是最基本的,也是最常用的類型。它是二進制安全的,也就是說,我們可以將對象序列化成json字符串作為value值存入Redis。在分配內存時,Redis會為一個字符串分配一些冗余的空間,以避免因字符串的值改變而出現頻繁的內存分配操作。當字符串長度小于1M時,每次擴容都會加倍現有空間,當長度大于1M時,每次擴容,增加1M,Redis字符串的最大長度是512M。
Hash
Hash是鍵值對集合,相當于Java中的HashMap,實際結構也和HashMap一樣,是數組+鏈表的結構。所不同的是擴容的方式不同,HashMap是進行一次rehash,而Redis為了不阻塞服務,會創建一個新的數組,在查詢時會同時查詢兩個Hash,然后在逐漸將舊的Hash內容轉移到新的中去。一個Hash最大可以存儲232-1個鍵值對。
List
List相當于Java中的LinkedList,它的插入和刪除操作的時間復雜度為O(1),而查詢操作的時間復雜度為O(n)。我們可以利用List的rpush、rpop、lpush和lpop命令來構建隊列或者棧。列表最多可以存儲232-1個元素。
Set
Set是String類型的無序集合,并且元素唯一,相當于Java中的HashSet,它的插入、刪除、查詢操作的時間復雜度都是O(1)。其最大元素數也是232-1個。
zset
zset可以看做是Java中SortedSet和HashMap的結合,一方面它不允許元素重復,另一方面,它通過score為每個元素進行排序。
對于以上5種數據結構,有兩個通用的規則:
如果不存在,就先創建,再進行操作
如果元素為空,就會釋放內存
我們可以對上面所有的類型設置過期時間,如果時間到了,Redis 會自動刪除相應的對象。
到此,關于“Redis基礎數據類型有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。