redis是一個高性能的key-value數據庫,它是完全開源免費的,而且redis是一個nosql類型數據庫,是為了解決高并發、高擴展,大數據存儲等一系列的問題而產生的數據庫解決方案,是一個非關系型的數據庫。
功能:
緩存是Redis最常見的應用場景,之所有這么使用,主要是因為Redis讀寫性能優異。而且逐漸有取代memcached,成為首選服務端緩存的組件。而且,Redis內部是支持事務的,在使用時候能有效保證數據的一致性。? ? ? ? ? ? ? ? ? ? ? ? ?(推薦學習:Redis視頻教程)
排行榜,在使用傳統的關系型數據庫(mysql oracle 等)來做這個事兒,非常的麻煩,而利用Redis的SortSet(有序集合)數據結構能夠簡單的搞定;
計算器/限速器,利用Redis中原子性的自增操作,我們可以統計類似用戶點贊數、用戶訪問數等,這類操作如果用MySQL,頻繁的讀寫會帶來相當大的壓力;限速器比較典型的使用場景是限制某個用戶訪問某個API的頻率,常用的有搶購時,防止用戶瘋狂點擊帶來不必要的壓力;
好友關系,利用集合的一些命令,比如求交集、并集、差集等。可以方便搞定一些共同好友、共同愛好之類的功能;
簡單消息隊列,除了Redis自身的發布/訂閱模式,我們也可以利用List來實現一個隊列機制,比如:到貨通知、郵件發送之類的需求,不需要高可靠,但是會帶來非常大的DB壓力,完全可以用List來完成異步解耦;
Session共享,以php為例,默認Session是保存在服務器的文件中,如果是集群服務,同一個用戶過來可能落在不同機器上,這就會導致用戶頻繁登陸;采用Redis保存Session后,無論用戶落在那臺機器上都能夠獲取到對應的Session信息。
一些頻繁被訪問的數據,經常被訪問的數據如果放在關系型數據庫,每次查詢的開銷都會很大,而放在redis中,因為redis 是放在內存中的可以很高效的訪問