【Redis】Redis學習(一) Redis初步入門


 

一、Redis基礎知識

1.1 Redis簡介

   Redis是一個開源(BSD許可),內存存儲的數據結構服務器,可用作數據庫高速緩存消息隊列代理。它支持字符串、哈希表、列表、集合、有序集合,位圖,hyperloglogs等數據類型。內置復制、Lua腳本、LRU收回、事務以及不同級別磁盤持久化功能,同時通過Redis Sentinel提供高可用,通過Redis Cluster提供自動分區。

  一般項目都可以使用它。

1.2 Redis資料

   Redis的資料還是比較多的,首先推薦Redis中文網站的資料,其他的

1.2.1 初步教程

  Redis 教程:http://www.runoob.com/redis/redis-tutorial.html,菜鳥教程,內容很詳細,閱讀完后基本就對Redis有個全面的了解。其中每部分鏈接:

  Redis 教程 Redis 簡介 Redis 安裝 Redis 配置 Redis 數據類型

  Redis 命令 Redis 鍵(key) Redis 字符串(String) Redis 哈希(Hash) Redis 列表(List) Redis 集合(Set) Redis 有序集合(sorted set) Redis HyperLogLog Redis 發布訂閱 Redis 事務 Redis 腳本 Redis 連接 Redis 服務器

  Redis 數據備份與恢復 Redis 安全 Redis 性能測試 Redis 客戶端連接 Redis 管道技術 Redis 分區 Java 使用 Redis PHP 使用 Redis

1.2.2 其他教程

  所有命令解析:http://www.redis.net.cn/order/,遇到不懂的可以來查詢。

二、Redis和同類產品的比較

  根據Redis的簡介,Redis可用作數據庫高速緩存消息隊列代理,那么當你打算使用它們這些功能的時候,可以考慮一下與其他產品的對比,選出一個更好用的。

1.1 做為數據庫與之比較

  Redis是可以做為數據庫來使用的,它可以看做一個key/value型數據庫,因為Redis會根據配置定時將內存中的數據寫入到硬盤中,這樣即便重啟以后依然可以恢復,但是有幾個缺點需要考慮一下:

  • Redis只能存儲key/value類型,雖然value的類型可以有多種,但是對於關聯性的記錄查詢,沒有Oracle/Mysql方便。
  • Redis內存數據寫入硬盤有一定的時間間隔,在這個間隔內數據可能會丟失,雖然后續會介紹各種模式來保證數據丟失的可能性,但是依然會有可能,所以對數據有嚴格要求的不建議使用Redis做為數據庫。

1.2 做為高速緩存與之比較

  我覺得Redis的本職工作還是高速緩存,同樣可以做為緩存的有Ehcache、Memcached 。有一篇博客介紹的很詳細:http://blog.csdn.net/jationxiaozi/article/details/8509732。我就簡單總結一下,只說它們最大的特點,讀取速度不再考慮范圍之內,畢竟能作為相互比較的緩存工具,速度不會差的太多,只列出較為突出的優點和缺點,列出來表示其他沒有:

Ehcache

    • 是一個Java開源項目,使用的方式就是引入一個jar包,非常方便

Memcached 

    • 如果開啟多線程模式,讀取速度將有極大的提高
    • 數據只會存儲在內存中,掛掉后數據不可恢復

Redis

    • 數據結構非常豐富,字符串、hash列表、list、Set等等
    • 支持主從,Sentinal,分片等多種高級特性,用於負載均衡和容災,具有高可用性
    • 幾乎支持所有語言的客戶端

  根據需求選擇最合適的。

1.3 做為消息隊列與之比較

  Redis也是可以做為消息隊列的,與之相同功能比較優秀的就是Kafka,簡單比較如下:

Redis

    • 只能說具備發布訂閱功能,一個或多個消費者訂閱一個頻道

Kafka

    • 高級特性一應俱全,集群、負載均衡、動態擴容、數據備份等

  這么說,如果能用Kafka就用Kafka,對於數據不敏感的一般場景也是可以應用Redis的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM