您好,登錄后才能下訂單哦!
1. Redis簡介
Redis 是一個Key-Value 存儲系統。和Memcached 類似,它支持存儲的value 類型相對更多, 包括string(字符串)、list(鏈表)、set(集合)和zset(有序集合)。這些數據類型都支持push/pop、add/remove 及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,Redis 支持各種不同方式的排序。與memcached 一樣,為了保證效率,數據都是緩存在內存中。區別的是Redis 會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現了master-slave(主從)同步。
1.1 Key-Value 存儲系統簡介
Key-Value Store 是當下比較流行的話題,尤其在構建諸如搜索引擎、IM、P2P、游戲服務器、 SNS 等大型互聯網應用以及提供云計算服務的時候,怎樣保證系統在海量數據環境下的高性能、高可靠性、高擴展性、高可用性、低成本成為所有系統架構們挖苦心思考慮的重點,而怎樣解決數據庫服務器的性能瓶頸是最大的挑戰。按照分布式領域的CAP 理論(Consistency、 Availability 、Tolerance to network Partitions 這三部分在任何系統架構實現時只可能同時滿足其中二點,沒法三者兼顧)來衡量,傳統的關系數據庫的ACID 只滿足了Consistency、Availability ,因此在Partition tolerance 上就很難做得好。另外傳統的關系數據庫處理海量數據、分布式架構時候在 Performance Scalability 、Availability 等方面也存在很大的局限性.而Key-Value Store 更加注重對海量數據存取的性能、分布式、擴展性支持上,并不需要傳統關系數據庫的一些特征,例如:Schema、事務、完整 SQL 查詢支持等等,因此在分布式環境下的性能相對于傳統的關系數據庫有較大的提升。
Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基于內存亦可持久化的日志型、Key-Value 數據庫,并提供多種語言的API 。從2010 年3 月15 日起,Redis 的開發工作由VMware主持.
1.2 Redis應用場景
1.2.1 取最新N 個數據的操作
1.2.2 排行榜應用,取TOP N 操作
這個需求與上面需求的不同之處在于,前面操作以時間為權重,這個是以某個條件為權重,比如按頂的次數排序,這時候就需要我們的sorted set 出馬了,將你要排序的值設置成sorted set 的score,將具體的數據設置成相應的value ,每次只需要執行一條ZADD 命令即可。
1.2.3、需要精準設定過期時間的應用
比如你可以把上面說到的sorted set 的score 值設置成過期時間的時間戳,那么就可以簡單地通過過期時間排序,定時清除過期數據了,不僅是清除Redis 中的過期數據,你完全可以把 Redis 里這個過期時間當成是對數據庫中數據的索引,用 Redis 來找出哪些數據需要過期刪除,然后再精準地從數據庫中刪除相應的記錄.
1.3 Redis數據類型
作為Key-value 型數據庫,Redis 也提供了鍵(Key)和鍵值(Value )的映射關系。但是,除了常規的數值或字符串,Redis 的鍵值還可以是以下形式之一:
Lists (列表)
Sets (集合)
Sorted sets (有序集合)
Hashes (哈希表)
鍵值的數據類型決定了該鍵值支持的操作。Redis支持諸如列表、集合或有序集合的交集、并集、查集等高級原子操作;同時,如果鍵值的類型是普通數字,Redis 則提供自增等原子操作。
以上內容出自紅丸。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。