該向客戶推薦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,分值為文章的發布時間。我們可以根據文章的發布時間進行文章的排序。