redis
是乙個高效能的
key-value
資料庫。
string:可以是字串、整數、浮點數
list(列表):乙個鍊錶,鍊錶上的每個節點都包含乙個字串
set(集合):包含字串的無序收集器,並且被包含的每個字串都是獨一無二的,各不相同
hash(雜湊):包含鍵值對的無序雜湊表。
zset(有序集合):字串成員與浮點數分值之間的有序對映,元素的排列順序有分值大小決定
vm 選項是作為 redis 儲存超出物理記憶體資料的一種資料在記憶體與磁碟換入換出的乙個持久化策略,將嚴重地拖垮系統的執行速度,所以要關閉 vm 功能,請檢查你的 redis.conf 檔案中 vm-enabled 為 no。
最好設定下 redis.conf 中的 maxmemory 選項,該選項是告訴 redis 當使用了多少物理記憶體後就開始拒絕後續的寫入請求,該引數能很好的保護好你的 redis 不會因為使用了過多的物理記憶體而導致 swap,最終嚴重影響效能甚至崩潰。
1.string
這個沒啥好說的,最常規的 set/get 操作,value 可以是 string 也可以是數字。一般做一些複雜的計數功能的快取。快取序列化後的檔案,等。
2.hash
這裡 value 存放的是結構化的物件,比較方便的就是操作其中的某個字段。
做單點登入的時候,可以用這種資料結構儲存使用者資訊,以 cookieid 作為 key,設定 30 分鐘為快取過期時間,能很好的模擬出類似 session 的效果。
3.list
使用 list 的資料結構,可以做簡單的訊息佇列的功能。另外還有乙個就是,可以利用 lrange 命令,做基於 redis 的分頁功能,效能極佳,使用者體驗好。
4.set
因為 set 堆放的是一堆不重複值的集合。所以可以做全域性去重的功能。為什麼不用 jvm 自帶的 set 進行去重?
因為我們的系統一般都是集群部署,使用 jvm 自帶的 set,比較麻煩,難道為了乙個做乙個全域性去重,再起乙個公共服務,太麻煩了。
另外,就是利用交集、並集、差集等操作,可以計算共同喜好,全部的喜好,自己獨有的喜好等功能。
5.sorted set
sorted set多了乙個權重引數 score,集合中的元素能夠按 score 進行排列。
可以做排行榜應用,取 top n 操作。sorted set 可以用來做延時任務。最後乙個應用就是可以做範圍查詢。
簡陋Redis複習筆記
1.五大資料型別 string 字串 set key value set sadd zset zadd hash hset smset list pop push lrange 遍歷 incr 原子自增 可以用來介面限流 計數器 expire 時間設定 keys 所有的key 獲取所有的key 分布...
複習電商筆記 33 Redis功能介紹
首先redis它的設計是用來做快取的,但是由於它自身的某種特性 下面會詳細討論 使得它可以用來做訊息佇列。它有幾個阻塞式的api可以使用,正是這些阻塞式的api讓他有做訊息佇列的能力。試想一下在 資料庫解決所有問題 的思路下,不使用訊息佇列也是可以完成你的需求的。我們把任務全部存放在資料庫然後通過不...
redis 從0開始的redis複習之路
redis介紹 redis remote dictionary server 即遠端字典服務,是乙個開源的使用ansi c語言編寫 支援網路 可基於記憶體亦可持久化的日誌型 key value資料庫,並提供多種語言的api。和其他的快取比如ecache比較 redis 搭建 通過原始碼編譯安裝 wg...