該向客戶推薦Redis、還是Memcached?
- 2019 年 10 月 6 日
- 筆記
1、Redis、Memcached的主要區別是?
基於Key、Value型的Nosql資料庫很多,我們經常聽說的是以上兩款。在幾年前,我們經常聽說Memcached ,但這幾年Redis更耳聞能詳。
A、Redis存儲的數據類型更多。Memcached一般只能存儲普通的字元串鍵值,而Redis還可以存儲其他4種數據結構(列表、集合、散列表、有序集合)。
B、Redis支援數據落盤。Redis既可以用作主資料庫,又可以作為其他存儲系統的輔助資料庫。而Memcached一般只用為記憶體資料庫使用。
C、Redis支援主從複製。Redis可作為HA環境中使用,主用伺服器通過日誌將修改數據自動同步到從伺服器中。
二、Redis分別支援的五種數據類型是?
1、字元串
set hello world //hello是鍵名,world是值。String是數據類型
2、列表
rpush list-key item
rpush list-key item2 //list-key是鍵名,item、item2是值。
3、集合
sadd set-key item1
sadd set-key item2
sadd set-key item3 //集合與列表類似,但集合不允許存儲相同的值
4、散列
散列就像是一個微型的redis
hset hash-key sub-key1 value1
hset hash-key sub-key2 value2
5、有序集合
zadd zset-key 728 member1
zadd zset-key 982 member0 //member1、member0是成員,728、982是浮點數分值。有序集合與散列類似,可以根據成員訪問元素;但有序集合可以根據分值、分值的排列順序來訪問元素的結構。
三、我們用Redis數據類型來解決一個實際問題!
1、如果有幾十篇文章,需要進行投票,需要避免單個用戶一天內重複投票。為避免存儲無效的用戶數據。我們可以用集合類型存儲用戶的ID。
2、如果我們需要存儲幾十篇文章,我們可以用有序集合類型。有序集合的成員為文章ID,分值為文章的發布時間。我們可以根據文章的發布時間進行文章的排序。