redis系列之redis是什麼

1、簡介

REmote DIctionary Server(Redis)redis是一個基於內存的單機key/value系統,相似memcached,但支持value爲多種形式,包括:字符串(string)、鏈表(list)、集合(set)、有序集合(sorted set)hash tablehtml

2、特色 

1 優勢

memcacheMySQL等相似產品比較,Redis有如下幾個優勢:mysql

1) 很是豐富的數據結構,且這些數據結構的常見操做均是原子性的;redis

2) 高速讀寫。Memcached提供了CAS命令,能夠保證多個併發訪問操做同一份數據的一致性問題。 Redis沒有提供CAS命令,不過Redis提供了事務的功能,能夠保證一串命令的原子性,中間不會被任何操做打斷。MYSQL使用了鎖,而memcache未使用鎖,進而效率極高。總之,Redis用本身實現的事件分離器,代碼量很短,沒有CAS,沒有lock,於是效率很是高。關於memcacheredis的比較,可參考這篇文章:《RedisMemcached的比較》[1]算法

2 缺點

1) 持久化。 Redis直接將數據存儲到內存中,可經過兩種方式持久化:定時快照(snapshot)和基於語句的追加(Append Only Fileaof)。Snapshot的方法是指每隔一段時間將整個數據庫的數據寫到磁盤上,很明顯,每次均是寫所有數據,代價很是高;而aof方法只追蹤變化的數據,這相似於mysqlbinlog方法,但追加log可能過大,同時全部操做均要從新執行一遍,恢復速度慢。sql

2) 耗內存。儘管Redis對一些數據結構採用了壓縮算法存儲,但佔用內存量仍是太高。數據庫

 

[1] RedisMemcached的比較http://tech.it168.com/a2011/0818/1234/000001234403_1.shtml 數據結構

相關文章
相關標籤/搜索