1. redis簡介
創(chuàng)新互聯(lián)建站一直通過網(wǎng)站建設(shè)和網(wǎng)站營銷幫助企業(yè)獲得更多客戶資源。 以"深度挖掘,量身打造,注重實(shí)效"的一站式服務(wù),以網(wǎng)站建設(shè)、網(wǎng)站制作、移動互聯(lián)產(chǎn)品、全網(wǎng)整合營銷推廣服務(wù)為核心業(yè)務(wù)。十年網(wǎng)站制作的經(jīng)驗(yàn),使用新網(wǎng)站建設(shè)技術(shù),全新開發(fā)出的標(biāo)準(zhǔn)網(wǎng)站,不但價(jià)格便宜而且實(shí)用、靈活,特別適合中小公司網(wǎng)站制作。網(wǎng)站管理系統(tǒng)簡單易用,維護(hù)方便,您可以完全操作網(wǎng)站資料,是中小公司快速網(wǎng)站建設(shè)的選擇。
Redis 是一個(gè)Key-Value 存儲系統(tǒng)。和Memcached 類似,它支持存儲的value 類型相對更多, 包括string(字符串)、list(鏈表)、set(集合)和zset(有序集合)。這些數(shù)據(jù)類型都支持push/pop、add/remove 及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎(chǔ)上,Redis 支持各種不同方式的排序。與memcached 一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。區(qū)別的是Redis 會周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎(chǔ)上實(shí)現(xiàn)了master-slave(主從)同步。
1.1 Key-Value 存儲系統(tǒng)簡介
Key-Value Store 是當(dāng)下比較流行的話題,尤其在構(gòu)建諸如搜索引擎、IM、P2P、游戲服務(wù)器、 SNS 等大型互聯(lián)網(wǎng)應(yīng)用以及提供云計(jì)算服務(wù)的時(shí)候,怎樣保證系統(tǒng)在海量數(shù)據(jù)環(huán)境下的高性能、高可靠性、高擴(kuò)展性、高可用性、低成本成為所有系統(tǒng)架構(gòu)們挖苦心思考慮的重點(diǎn),而怎樣解決數(shù)據(jù)庫服務(wù)器的性能瓶頸是最大的挑戰(zhàn)。按照分布式領(lǐng)域的CAP 理論(Consistency、 Availability 、Tolerance to network Partitions 這三部分在任何系統(tǒng)架構(gòu)實(shí)現(xiàn)時(shí)只可能同時(shí)滿足其中二點(diǎn),沒法三者兼顧)來衡量,傳統(tǒng)的關(guān)系數(shù)據(jù)庫的ACID 只滿足了Consistency、Availability ,因此在Partition tolerance 上就很難做得好。另外傳統(tǒng)的關(guān)系數(shù)據(jù)庫處理海量數(shù)據(jù)、分布式架構(gòu)時(shí)候在 Performance Scalability 、Availability 等方面也存在很大的局限性.而Key-Value Store 更加注重對海量數(shù)據(jù)存取的性能、分布式、擴(kuò)展性支持上,并不需要傳統(tǒng)關(guān)系數(shù)據(jù)庫的一些特征,例如:Schema、事務(wù)、完整 SQL 查詢支持等等,因此在分布式環(huán)境下的性能相對于傳統(tǒng)的關(guān)系數(shù)據(jù)庫有較大的提升。
Redis是一個(gè)開源的使用ANSI C語言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value 數(shù)據(jù)庫,并提供多種語言的API 。從2010 年3 月15 日起,Redis 的開發(fā)工作由VMware主持.
1.2 Redis應(yīng)用場景
1.2.1 取最新N 個(gè)數(shù)據(jù)的操作
1.2.2 排行榜應(yīng)用,取TOP N 操作
這個(gè)需求與上面需求的不同之處在于,前面操作以時(shí)間為權(quán)重,這個(gè)是以某個(gè)條件為權(quán)重,比如按頂?shù)拇螖?shù)排序,這時(shí)候就需要我們的sorted set 出馬了,將你要排序的值設(shè)置成sorted set 的score,將具體的數(shù)據(jù)設(shè)置成相應(yīng)的value ,每次只需要執(zhí)行一條ZADD 命令即可。
1.2.3、需要精準(zhǔn)設(shè)定過期時(shí)間的應(yīng)用
比如你可以把上面說到的sorted set 的score 值設(shè)置成過期時(shí)間的時(shí)間戳,那么就可以簡單地通過過期時(shí)間排序,定時(shí)清除過期數(shù)據(jù)了,不僅是清除Redis 中的過期數(shù)據(jù),你完全可以把 Redis 里這個(gè)過期時(shí)間當(dāng)成是對數(shù)據(jù)庫中數(shù)據(jù)的索引,用 Redis 來找出哪些數(shù)據(jù)需要過期刪除,然后再精準(zhǔn)地從數(shù)據(jù)庫中刪除相應(yīng)的記錄.
1.3 Redis數(shù)據(jù)類型
作為Key-value 型數(shù)據(jù)庫,Redis 也提供了鍵(Key)和鍵值(Value )的映射關(guān)系。但是,除了常規(guī)的數(shù)值或字符串,Redis 的鍵值還可以是以下形式之一:
Lists (列表)
Sets (集合)
Sorted sets (有序集合)
Hashes (哈希表)
鍵值的數(shù)據(jù)類型決定了該鍵值支持的操作。Redis支持諸如列表、集合或有序集合的交集、并集、查集等高級原子操作;同時(shí),如果鍵值的類型是普通數(shù)字,Redis 則提供自增等原子操作。
以上內(nèi)容出自紅丸。