redis的資料結構sets和hash
3.儲存sets型別
在Redis中,我們可以將Set型別看作為沒有排序的字元集合,和List型別一樣,我 們也可以在該型別的資料值上執行新增、刪除或判斷某一元素是否存在等操作。需要 說明的是,這些操作的時間是常量時間。Set可包含的最大元素數是4294967295。 和List型別不同的是,Set集合中不允許出現重複的元素。和List型別相比,Set類 型在功能上還存在著一個非常重要的特性,即在伺服器端完成多個Sets之間的聚合計 算操作,如unions、intersections和differences。由於這些操作均在服務端完成, 因此效率極高,而且也節省了大量的網路IO開銷
1)sadd key value1、value2…
11)sunion key1、key2:返回並集。 12)sunionstore destination key1 key2:將返回的並集儲存在destination上
# 4.儲存sortedset
Sorted-Sets和Sets型別極為相似,它們都是字串的集合,都不允許重複的成員出 現在一個Set中。它們之間的主要差別是Sorted-Sets中的每一個成員都會有一個分 數(score)與之關聯,Redis正是通過分數來為集合中的成員進行從小到大的排序。然 而需要額外指出的是,儘管Sorted-Sets中的成員必須是唯一的,但是分數(score) 卻是可以重複的。 在Sorted-Set中新增、刪除或更新一個成員都是非常快速的操作,其時間複雜度為 集合中成員數量的對數。由於Sorted-Sets中的成員在集合中的位置是有序的,因此, 即便是訪問位於集合中部的成員也仍然是非常高效的。事實上,Redis所具有的這一 特徵在很多其它型別的資料庫中是很難實現的,換句話說,在該點上要想達到和Redis 同樣的高效,在其它資料庫中進行建模是非常困難的。 例如:遊戲排名、微博熱點話題等使用場景。
5.儲存hash
Redis中的Hashes型別可以看成具有String Key和String Value的map容器。所 以該型別非常適合於儲存值物件的資訊。如Username、Password和Age等。如果 Hash中包含很少的欄位,那麼該型別的資料也將僅佔用很少的磁碟空間。每一個Hash 可以儲存4294967295個鍵值對。
1)hset key field value:為指定的key設定field/value對(鍵值對)。 2)hgetall key:獲取key中的所有filed-vaule 3)hget key field:返回指定的key中的field的值 4)hmset key fields:設定key中的多個filed/value
5)hmget key fileds:獲取key中的多個filed的值 6)hexists key field:判斷指定的key中的filed是否存在 7)hlen key:獲取key所包含的field的數量 8)hincrby key field increment:設定key中filed的值增加increment,如:age 增加20