最直觀的一些區(qū)別
- Redis 不僅支持簡(jiǎn)單的K/V類型數(shù)據(jù),還支持 list , set, zset, hash等數(shù)據(jù)結(jié)構(gòu)窖杀。
- Redis支持?jǐn)?shù)據(jù)的備份肺孵,即master-slave模式的數(shù)據(jù)備份傻挂。
- Redis支持?jǐn)?shù)據(jù)的持久化叹坦,可以將內(nèi)在中的數(shù)據(jù)保持在磁盤中,重啟的時(shí)候可以再次加載使用扇雕。
更深入的區(qū)別
- 在Redis中拓售,不是所有數(shù)據(jù)都一直存儲(chǔ)在內(nèi)在中的,這是與Memcached相比最大的區(qū)別镶奉。
Redis只會(huì)緩存所有的key信息邻辉,如果Redis發(fā)現(xiàn)內(nèi)在的使用量超過了某一個(gè)閥值,將觸發(fā)swap操作腮鞍,Redis會(huì)計(jì)算出哪些key對(duì)應(yīng)的value需要swap到磁盤值骇,然后再將這些value持久化到磁盤中,同時(shí)在內(nèi)在中清除移国。
- Memcached 是多線程吱瘩,非阻塞IO復(fù)用的網(wǎng)絡(luò)模型,分為監(jiān)聽主線程和worker子線程迹缀。Redis 使用單線程的IO復(fù)用模型使碾。
總結(jié)
- Redis使用的最佳方式是全部數(shù)據(jù)in-memory.
- Redis更多場(chǎng)景是作為Memcached的替代者來使用。
- 當(dāng)需要除k/v之外的更多數(shù)據(jù)類型支持時(shí)祝懂,使用Redis更合適票摇。
- 當(dāng)存儲(chǔ)的數(shù)據(jù)不 能被剔除時(shí),使用Redis更合適砚蓬。