Redis初探
redis是一個key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set –有序集合)和hashs(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,爲了保證效率,數據都是緩存在內存中。區別的是redis會週期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步。
Windows下搭建(ReferenceLink)
- 下載Redis(Download)
- cmd切換到運行目錄,運行redis-server.exe redis.conf
- 運行 redis-cli.exe -h 127.0.0.1 -p 6379,其中 127.0.0.1是本地ip,6379是redis服務端的默認端口。
- 輸入(1)set test “Helloworld”;(2) get test;搭建成功。
Redis命令(ReferenceLink)
與Memcached比較(ReferenceLink)
- 值類型不同,memcached只有Value,Redis有Hash,List,String,Set, SortedSet等多種數據類型。Redis的多數據類型設計,保證了數據能夠直接在服務器端做修改等操作,Memcached只能讀到客戶端處理後再保存到服務器端,效率比Redis低。
- Memcached是完全存儲在內存,斷電後數據丟失;Redis是所有的Key必須在內存,Value可以寫入硬盤,斷電後可以恢復。
- Memcached是預分配內存,空間浪費大。Redis是現場申請內存。
- Memcached是多線程,分爲監聽線程、worker線程,引入鎖,帶來了性能損耗。Redis使用單線程的IO複用模型,將速度優勢發揮到最大,也提供了較簡單的計算功能 ;
- Memcached提供了cas命令來保證數據一致性.而Redis提供了事務的功能,可以保證一串 命令的原子性,中間不會被任何操作打斷 。