日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

今天我們學習一種新的NoSQL數據庫,叫做redis。Redis是一種基于鍵值對(key-value)的NoSQL數據庫。Redis與其它數據庫相比,不同的是Redis的值可以存儲多種數據類型。它們具體包括:string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、Bitmaps(位圖)、GEO(地理信息定位)等。除此之外Redis還會將數據保存到內存中,所以Redis數據庫地讀寫性能非常高。這時可能有人會說,那Redis豈不是很不安全,因為保存在內存中的數據是不安全的,如果碰到突然斷電或者系統故障的話,那保存到Redis中的數據豈不是就要丟失了。在這一點上,我們恰恰不用擔心,因為Redis為我們提供了快照和日志等方式,來允許我們將內存中的數據保存到硬盤上,這樣當遇到上述故障重Redis時,Redis就會重新從硬盤加載已經保存好的數據,重新加載到內存中。除了上述功能外,Redis還提供了很多附加的高級的功能。如鍵過期、發布訂閱、事物、流水線、Lua腳本等功能。下面我們看一下Redis中的特性。

  • Redis特性
  1. 前面我們提到過Redis的執行速度非???,下面我們從幾個方面來介紹一下為什么Redis的速度這么快。首先Redis中的所有數據都是存儲到內存中的,我們知道直接操作內存和直接操作磁盤是有很大的區別的,因為操作磁盤為會很大的IO開銷,所以,這也是Redis將數據保存到內存中,提高性能的原因之一。其二Redis是用C語言寫的,在這一點上,我們知道C語言是最接近匯編的語言,也就是最接近操作系統的語言了,所以,在執行速度上,也會比間接提高Redis的執行效率。還有一個原因,那就是Redis是采用單線程架構,這么做的好處就是可以預防多線程可以產生的競爭問題。
  2. Redis雖然是鍵值對的數據庫,但Redis中的值不僅可以保存字符串,還可以保存多種數據類型。也就是前面提到過的字符串、哈希、列表、集合、有序集合等。
  3. 在Redis中除了提供了上述的5種數據結構外,還提供了多種額外的功能。如鍵過期(可以實現緩存功能)、發布訂閱(可以實現消息系統)、流水線(可以通過此功能一次性執行一批命令,減少網絡開銷)、Lua腳本(可以通過Lua語言創造新的Redis命令)等。
  4. Redis提供了簡單的TCP通信協議,支持很多種語言,可以很方便的接入到Redis中。
  5. 持久化。就向前面提到的。在Redis中,可以通過快照和日志功能,來將內存中的數據,持久化到硬盤中。
  6. 主從復制。Redis中提供了復制的功能??梢詫崿F多個相同的數據的Redis副本,依次來實現Redis的分布式存儲。
  7. 分布式。Redis中提供了Redis Sentinel功能,通過它可以保證Redis節點在發生故障時,自動轉移。依次來保證Redis的安全性。除此之外,Redis還提供了Redis Cluster功能。正是通過此功能,才保證了Redis真正的分布式實現。
  • Redis可以做些什么
  1. 緩存。通過Redis中的鍵過期功能,我們可以為鍵設置一個過期時間,這樣當這個鍵超過了過期時間時,當前保存的鍵的信息,也就是失效了。這也就是用Redis實現緩存功能的使用方式。
  2. 排行榜系統。在Redis中提供了列表和有序列表,通過此功能,我們可以很方便的實現排行榜功能,
  3. 計數器。我們平時在購物時,會發現購物網站上有很多類似于瀏覽量之類的數據。當我們每訪問一次時,數據就會執行加1操作。如果我們采用傳統的數據庫方式實現,那么就會因為并發量很大,而對數據庫性能產生相應影響。而如果采用Redis的方式計算,則會容易多了,因為Redis中會在內存中計算,這樣計數器的性能就會非常高了。當然除此之外還可以用Redis實現社交網絡中的贊、踩、粉絲、共同好友、等功能。
  4. 消息隊列。Redis中提供了發布訂閱和阻塞隊列功能,雖然我們可以使用專業的消息隊列,但對于一般的隊列功能,Redis都可以支持。
  • Redis的注意事項
  1. 我們知道Redis是將數據存儲到內存中的,雖然存儲到內存中的會提到數據訪問的性能,但如果我們將所有的數據都保存到內存中,那么就可能會造成相應的內存泄漏了,從而導致系統的癱瘓。
  2. 我們知道,將數據存儲到內存中的目的是為了提高數據訪問的性能。那么我們怎么在設計系統時,怎么判斷哪些數據要保存到Redis中,而哪些數據而不需要保存到Redis中呢?通常來說數據分為熱數據(頻繁操作的數據)和冷數據(非頻繁操作的數據)。我們知道,提高數據訪問性能的主要原因是因為大量并發的操作,正是因為這樣,所以,如果我們不將大部分用戶都訪問的公用數據放到內存中,那么勢必會造成程序的不穩定。所以我們應該將公用的數據,應該存儲到Redis中。那么反之,不是公用的數據,也就不會產生大量的并發,所以,這一部分數據,我們是不需要存儲到Redis中的。
  • Redis的安裝
  1. 通過了上述的介紹使我們知道Redis在系統架構中有者不可替代的作用,而大部分企業的系統架構都采用了linux系統部署,所以,在介紹安裝時我們將重點介紹Linux系統的安裝。因為本文將采用源碼的方式安裝,又因為Linux系統和mac OS系統源碼安裝的方式相同,所以,本文將采用Mac OS系統的方式來演示安裝過程。
  2. 首先我們訪問Redis官網。來選擇Redis的源碼包。具體操作如圖示:
初識Redis

 


初識Redis

 

當我們下載完成后,我們只需執行下面的命令就可以采用源碼的方式,安裝Redis。

tar xzvf redis.tar.gz // 解壓當前壓縮包
ln -s redis redis // 創建一個redis目錄軟鏈接
cd redis // 進入redis目錄
make // 編譯
make install // 安裝

當我們安裝完成后可以直接執行下面命令查看redis的版本,如果沒有顯示版本則表示可能redis安裝失敗,或者,當前目錄不至此此命令

redis-cli -v

在Redis安裝成功后的bin目錄下會有很多以redis開頭的可執行文件。掌握這些文件的使用,可以幫助我們更好的理解redis的使用。下在我們來簡單介紹一下bin目錄下的相關redis命令。

可執行文件作用redis-server啟動Redisredis-cliRedis命令行客戶端 redis-benchmarkRedis基準測試工具 redis-check-aofRedis AOF持久化文件檢測和修復工具 redis-check-dumpRedis RDB持久化文件檢測和修復工具 redis-sentinel啟動Redis Sentinel

下面我們用上面提到的命令來啟動Redis,也就是redis-server命令。

初識Redis

 

通過上面的啟動信息,可以使我們知道當前Redis的版本是4.0.9,端口是6379(Redis的默認端口)。那如果我們要修改Redis的端口,應該怎么做呢?在Redis中我們可以很方便的實現,也就是在redis-server命令后直接添加端口即可。具體命令如下:

redis-server --port 6380 
初識Redis

 

在Redis中我們除了上述的方式外,還可以通過修改配置文件的方式來修改端口(不只是端口,還有其它的相關配置),并且這種方式,是Redis官方推薦的方式。Redis中的配置文件在redis.conf文件中,下面我們看一下redis.conf文件中相關參數的說明。

配置名配置說明port端口logfile日志文件dirRedis工作目錄(存放持久化文件和日志文件)daemonize是否以守護進程的方式啟動Redis

初識Redis

 

下面我們修改redis.conf文件中的port屬性,然后啟動Redis服務,看一下Redis端口是否成功被修改。

下面我們用配置文件中的方式來啟動Redis服務。

redis-server /redis.conf 
初識Redis

 

  • Redis命令行客戶端
  1. 既然我們已經成功的啟動了Redis服務,下面我們用下面的命令來訪問我們的Redis服務。
redis-cli - h {host} -p {port} 
初識Redis

 

我們看上面的信息,已經成功將hello world信息存儲到了Redis中的。除了上述的操作外,我們還可以直接獲取Redis中的值。具體操作如下:

初識Redis

 

如果我們沒有修改Redis默認的端口,并且訪問的是本地Redis服務的話,那么我們在用redis-cli命令連接Redis服務時,就可以不用指定 -h參數和-p參數了。

  • 停止Redis服務

在我們不需要連接Redis服務時,我們可以使用下面的命令來優雅的方式停止Redis服務,既然有優雅的方式,當然也有相對暴力的方式停止服務,也就是直接殺掉進程的方式。但Redis不推薦使用這個方式停止Redis服務,因為這種方式可能會導致Redis相關數據的丟失。下面我們看優雅的停止Redis服務的命令。

redis-cli shutdown

采用這種方式停止Redis服務時,Redis會自動的生成持久化文件,從而保證Redis中的數據的不會丟失。當然我們也可以添加相關參數則讓Redis服務在執行上述命令時不生成持久化文件。具體的命令如下:

redis-cli shutdown nosave|save

分享到:
標簽:Redis
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定