Nosql資料庫 redis(四)資料型別

2021-07-05 12:40:54 字數 3448 閱讀 1159

上篇部落格介紹了兩種資料型別string和hash,下面我們接著來看~

redis 是乙個鍊錶結構,主要的功能是push、pop/獲取乙個範圍的所有值等等,操作中key理解為鍊錶的名字。redis的list型別其實就是乙個每個子元素都是string型別的雙向鍊錶。我們可以通過push、pop操作從鍊錶的頭部或者尾部新增刪除元素,這樣list既可以作為棧,又可以作為佇列。

棧和佇列的含義:佇列是先進先出,而棧是先進後出。

演示幾個比較重要的操作(在window環境下進行的操作):

lpush:在key對於的list頭部新增字串元素。(是體現的棧)

rpush: 在key對於的list頭部新增字串元素(是體現佇列)。

lrange 0 -1預設從頭部取到尾部(從尾到頭為向上的方向),如圖所示:

linsert:在key對應的特定位置前或者後新增字串。

lset:設定list中指定下標的元素值。

lrem:從key對於的list中刪除n個和value相同的元素。(n<0從尾刪除,n=0全部刪除)

ltrim保留指定範圍內的資料。

lpop是從頭彈出元素而rpop是從尾彈出元素。

rpoplpush:從第乙個list的尾部進行彈出並且新增到第二個的頭部。

lindex:返回名稱為key的list中index位置的元素。key均為索引。

llen:返回key對於list長度。

redis的set是string型別的無序集合。集合是通過雜湊表實現的,所以新增,刪除,查詢的複雜度都是o(1)。對集合我們可以取並集、交集、差集。通過這些操作我們可以實現sns中的好友推薦和blog的tag功能。

好友推薦就是取的好友中的差集比如qq中你有的好友我沒有,但是我們互加好友就可以擁有。

sadd:向名稱為key的set中新增元素。相同元素無法插入,因為集合中不存在重複元素值,smembers是檢視元素。

0表示是無法插入的,1表示插入成功。

srem:刪除元素,刪除名稱為key的set中的元素。

spop:(隨機)lpop是從頭,rpop是從尾,而spop是隨機的,因為集合是無序的,不再演示。

sdiff:返回所有給定key與第乙個key的差集。誰在前面以誰為標準。(sdiffmyset myset1)sdiffstore,表示返回差集並且儲存到乙個新的set中去,(sdiff mysetmyset1 myset2(儲存差集集合))

sinter是交集,sinterstore,取出交集並且儲存到乙個集合中,與差集的獲取儲存一樣,只是這裡是交集。sunion是並集,sunionstore是求出並集並且儲存到乙個集合中。

smove:從第乙個key對應的set中移除member並且新增到第二個對應的set中。(smove myset myset1「hello」)

scard:返回名稱為key的set的元素個數。

sismember

:測試member是否為名稱為key的set的元素。

srandmember:隨機返回名稱為key的set的乙個元素,但不刪除元素。

sorted sets是set的乙個公升級,在set基礎上增加了順序屬性,這一屬性在新增修改元素的時候可以指定,每次指定後,zset會自動重新按新的值調整順序。可以理解為有兩列的mysql表,一列儲存value,一列儲存順序,操作中key理解我zset的名字。

zadd:有序新增,不同於set,這裡會有乙個順序值。

zrem是刪除元素,刪除名稱為key的zset的元素member。不再演示,同與set相同。

zincrby:自增屬性,與string型別中一樣,不再贅述。

zrank

:返回名稱為key的zset中元素的排名,按照score從小到大,也就是下標。zrevrank,反轉,按照score從大到小。

zrangebyscore:返回指定範圍。根據下標返回(zrangebyscore myset 2 3 withscores)

zcount:返回所有的元素及下標。zcard返回所有元素的個數。

zremrangebyrank:根據下標刪除再從小到大顯示。rank是根據索引的刪除,而score是根據順序來進行刪除。

到此五種資料型別介紹完畢,你知道了多少呢,動手實踐吧~

NoSQL資料庫之 Redis

redis是基於記憶體的nosql資料庫。前身是memcached,但是memcached不支援持久化,沒有豐富的資料型別。redis存放的資料是key values鍵值對。1 解壓 tar zxvf redis 3.0.5.tar.gz 預編譯,需要gcc環境。apt get install gc...

NoSql資料庫之redis資料庫簡介及安裝

一 redis資料庫簡介 redis是用c語言開發的乙個開源的高效能鍵值對 key value 資料庫。它通過提供多種鍵值資料型別來適應不同場景下的儲存需求,目前為止redis支援的鍵值資料型別如 下 1 字串型別 string 2 雜湊型別 hash 3 列表型別 list 4 集合型別 set ...

NoSQL資料庫Redis幾個認識誤區

前幾天微博發生了一起大的系統故障 很多技術的朋友都比較關心,其中的原因不會超出james hamilton在on designing and deploying internet scale service 1 概括的那幾個範圍,james第一條經驗 design for failure 是所有網際...