亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Redis教程(一):Redis簡介

 更新時間:2015年04月30日 10:48:13   投稿:junjie  
這篇文章主要介紹了Redis教程(一):Redis簡介,本文是系列文章的第一篇,歡迎大家跟隨本教程學習Redis數據庫,需要的朋友可以參考下

一、簡介:

在過去的幾年中,NoSQL數據庫一度成為高并發(fā)、海量數據存儲解決方案的代名詞,與之相應的產品也呈現(xiàn)出雨后春筍般的生機。然而在眾多產品中能夠脫穎而出的卻屈指可數,如Redis、MongoDB、BerkeleyDB和CouchDB等。由于每種產品所擁有的特征不同,因此它們的應用場景也存在著一定的差異,下面僅給出簡單的說明:

1). BerkeleyDB是一種極為流行的開源嵌入式數據庫,在更多情況下可用于存儲引擎,比如BerkeleyDB在被Oracle收購之前曾作為MySQL的存儲引擎,由此可以預見,該產品擁有極好的并發(fā)伸縮性,支持事務及嵌套事務,海量數據存儲等重要特征,在用于存儲實時數據方面具有極高的可用價值。然而需要指出的是,該產品的Licence為GPL,這就意味著它并不是在所有情況下都是免費使用的。

2). 對MongoDB的定義為Oriented-Document數據庫服務器,和BerkeleyDB不同的是該數據庫可以像其他關系型數據庫服務器那樣獨立的運行并提供相關的數據服務。從該產品的官方文檔中我們可以獲悉,MongoDB主要適用于高并發(fā)的論壇或博客網站,這些網站具有的主要特征是并發(fā)訪問量高、多讀少寫、數據量大、邏輯關系簡單,以及文檔數據作為主要數據源等。和BerkeleyDB一樣,該產品的License同為GPL。

3). Redis,典型的NoSQL數據庫服務器,和BerkeleyDB相比,它可以作為服務程序獨立運行于自己的服務器主機。在很多時候,人們只是將Redis視為Key/Value數據庫服務器,然而事實并非如此,在目前的版本中,Redis除了Key/Value之外還支持List、Hash、Set和Ordered Set等數據結構,因此它的用途也更為寬泛。對于此種誤解,Redis官網也進行了相應的澄清。和以上兩種產品不同的是,Redis的License是Apache License,就目前而言,它是完全免費。

4). memcached,數據緩存服務器。為什么在這里要給出該產品的解釋呢?很簡單,因為筆者認為它在使用方式上和Redis最為相似。畢竟這是一篇關于Redis的技術系列博客,有鑒于此,我們將簡要的對比一下這兩個產品。首先說一下它們之間的最大區(qū)別,memcached只是提供了數據緩存服務,一旦服務器宕機,之前在內存中緩存的數據也將全部消失,因此可以看出memcached沒有提供任何形式的數據持久化功能,而Redis則提供了這樣的功能。再有就是Redis提供了更為豐富的數據存儲結構,如Hash和Set。至于它們的相同點,主要有兩個,一是完全免費,再有就是它們的提供的命令形式極為接近。
   
二、Redis的優(yōu)勢:

      1). 和其他NoSQL產品相比,Redis的易用性極高,因此對于那些有類似產品使用經驗的開發(fā)者來說,一兩天,甚至是幾個小時之后就可以利用Redis來搭建自己的平臺了。
      2). 在解決了很多通用性問題的同時,也為一些個性化問題提供了相關的解決方案,如索引引擎、統(tǒng)計排名、消息隊列服務等。

三、目前版本中Redis存在的主要問題:

      1). 在官方版本中沒有提供Windows平臺的支持,已發(fā)布的正式版本中只是支持類Unix和MacOSX平臺。
      2). 沒有提供集群的支持,然而據官網所述,預計在2.6版本中會加入該特征。
      3). Publication/Subscription功能中,如果master宕機,slave無法自動提升為master。
   
四、和關系型數據庫的比較:

      在目前版本(2.4.7)的Redis中,提供了對五種不同數據類型的支持,其中只有一種類型,既string類型可以被視為Key-Value結構,而其他的數據類型均有適用于各自特征的應用場景,至于具體細節(jié)我們將會在該系列后面的博客中予以說明。
      相比于關系型數據庫,由于其存儲結構相對簡單,因此Redis并不能對復雜的邏輯關系提供很好的支持,然而在適用于Redis的場景中,我們卻可以由此而獲得效率上的顯著提升。即便如此,Redis還是為我們提供了一些數據庫應該具有的基礎概念,如:在同一連接中可以選擇打開不同的數據庫,然而不同的是,Redis中的數據庫是通過數字來進行命名的,缺省情況下打開的數據庫為0。如果程序在運行過程中打算切換數據庫,可以使用Redis的select命令來打開其他數據庫,如select 1,如果此后還想再切換回缺省數據庫,只需執(zhí)行select 0即可。
      在數據存儲方面,Redis遵循了現(xiàn)有NoSQL數據庫的主流思想,即Key作為數據檢索的唯一標識,我們可以將其簡單的理解為關系型數據庫中索引的鍵,而Value則作為數據存儲的主要對象,其中每一個Value都有一個Key與之關聯(lián),這就好比索引中物理數據在數據表中存儲的位置。在Redis中,Value將被視為二進制字節(jié)流用于存儲任何格式的數據,如Json、XML和序列化對象的字節(jié)流等,因此我們也可以將其想象為RDB中的BLOB類型字段。由此可見,在進行數據查詢時,我們只能基于Key作為我們查詢的條件,當然我們也可以應用Redis中提供的一些技巧將Value作為其他數據的Key,這些知識我們都會在后面的博客中予以介紹。
   
五、如何持久化內存數據:

      缺省情況下,Redis會參照當前數據庫中數據被修改的數量,在達到一定的閾值后會將數據庫的快照存儲到磁盤上,這一點我們可以通過配置文件來設定該閾值。通常情況下,我們也可以將Redis設定為定時保存。如當有1000個以上的鍵數據被修改時,Redis將每隔60秒進行一次數據持久化操作。缺省設置為,如果有9個或9個以下數據修改是,Redis將每15分鐘持久化一次。
      從上面提到的方案中可以看出,如果采用該方式,Redis的運行時效率將會是非常高效的,既每當有新的數據修改發(fā)生時,僅僅是內存中的緩存數據發(fā)生改變,而這樣的改變并不會被立即持久化到磁盤上,從而在絕大多數的修改操作中避免了磁盤IO的發(fā)生。然而事情往往是存在其兩面性的,在該方法中我們確實得到了效率上的提升,但是卻失去了數據可靠性。如果在內存快照被持久化到磁盤之前,Redis所在的服務器出現(xiàn)宕機,那么這些未寫入到磁盤的已修改數據都將丟失。為了保證數據的高可靠性,Redis還提供了另外一種數據持久化機制--Append模式。如果Redis服務器被配置為該方式,那么每當有數據修改發(fā)生時,都會被立即持久化到磁盤。
   

相關文章

  • Redis去重的3種不同方法匯總

    Redis去重的3種不同方法匯總

    Redis是完全開源免費的,遵守BSD協(xié)議,是一個高性能的key-value數據庫,下面這篇文章主要給大家介紹了關于Redis去重的3種不同方法,需要的朋友可以參考下
    2021-11-11
  • springboot整合使用云服務器上的Redis方法

    springboot整合使用云服務器上的Redis方法

    這篇文章主要介紹了springboot整合使用云服務器上的Redis,整合步驟通過導入依賴,配置yml文件,注入redisTemplate結合實例代碼給大家介紹的非常詳細,文中給大家分享了可能遇到的坑,感興趣的朋友跟隨小編一起看看吧
    2022-09-09
  • 淺析Redis分布式鎖

    淺析Redis分布式鎖

    本篇文章通過實例給大家講解了Redis分布式鎖工作原理以及用法分享,有需要的朋友參考學習下吧。
    2017-12-12
  • Redis配置文件詳解

    Redis配置文件詳解

    這篇文章主要介紹了Redis配置文件詳解,本文詳細完整的用中文解釋了Redis配置文件中各種參數的作用和功能,需要的朋友可以參考下
    2015-04-04
  • redis調用二維碼時的不斷刷新排查分析

    redis調用二維碼時的不斷刷新排查分析

    這篇文章主要為大家介紹了redis調用二維碼時不斷刷新排查分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-04-04
  • redis清空所有數據的三種方法

    redis清空所有數據的三種方法

    本文主要介紹了redis清空所有數據的三種方法,主要包括FLUSHALL,FLUSHDB,SCREPT FLUSH這三個指令,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • Redis 持久化 RDB 與 AOF的執(zhí)行過程

    Redis 持久化 RDB 與 AOF的執(zhí)行過程

    本文給大家記錄Redis 持久化RDB 與 AOF的執(zhí)行過程與配置,通過內部觸發(fā) RDB 場景分析Redis 持久化 RDB的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-11-11
  • 基于redis實現(xiàn)世界杯排行榜功能項目實戰(zhàn)

    基于redis實現(xiàn)世界杯排行榜功能項目實戰(zhàn)

    前段時間,做了一個世界杯競猜積分排行榜。對世界杯64場球賽勝負平進行猜測,猜對+1分,錯誤+0分,一人一場只能猜一次。下面通過本文給大家分享基于redis實現(xiàn)世界杯排行榜功能項目實戰(zhàn),感興趣的朋友一起看看吧
    2018-10-10
  • Redis集群節(jié)點通信過程/原理流程分析

    Redis集群節(jié)點通信過程/原理流程分析

    這篇文章主要介紹了Redis集群節(jié)點通信過程/原理,詳細介紹了Cluster(集群)的節(jié)點通信的流程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • redis批量刪除指定前綴key四種方法(收藏)

    redis批量刪除指定前綴key四種方法(收藏)

    這篇文章主要介紹了redis批量刪除指定前綴key四種方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-03-03

最新評論