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

 

1、Redis基礎知識

1.1 Redis簡介

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

  通常項目均可以使用它。html

1.2 Redis資料

   Redis的資料仍是比較多的,首先推薦Redis中文網站的資料,其餘的java

1.2.1 初步教程

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

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

  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/,遇到不懂的能夠來查詢。安全

2、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的。

相關文章
相關標籤/搜索