1. 程式人生 > >解開Redis的神秘面紗

解開Redis的神秘面紗

win64 作用 notice 序列 案例 駕駛 p地址 database 響應時間

本篇博文將為你解開Redis的神秘面紗,通過閱讀本篇博文你將了解到以下內容:

  1. 什麽是Redis?
  2. 為什麽選擇 Redis?
  3. 什麽場景下用Redis?
  4. Redis 支持哪些語言?
  5. Redis下載
  6. Redis 如何安裝? windows 安裝
  7. Redis 如何修改配置?
  8. Redis Strings, Lists, Sets, Sorted Sets, Hashes 多種數據類型使用

1. 什麽是Redis?

亞馬遜技術社區解釋

超快速的開源內存中數據存儲,可用作數據庫、緩存、消息代理和隊列。

Redis 是一款開源的內存中數據存儲,可實現亞毫秒級的響應時間,每秒處理數百萬個請求,為實時應用程序提供支持。它可用作快速數據庫、緩存、消息代理和隊列。Redis 提供各種數據結構,包括字符串、列表、集、排序集、HashMap、Hyperloglogo 和位圖。其他 Redis 功能包括高可用性、地理空間、Lua 腳本、事務、磁盤持久性和群集支持。Redis 經過 BSD 許可,采用優化的 C 語言代碼編寫,並支持多種開發語言和開源工具。Redis 是 REmote DIctionary Server 的首字母縮略詞。

Redis 的主要使用案例包括數據庫緩存、會話存儲、流數據分析、地理空間分析、聊天/消息收發、媒體流實時數據存儲,以及遊戲排行榜。由於速度超快且易於使用,Redis 是遊戲、廣告技術、金融服務、醫療保健和 IoT 應用程序的熱門選擇,這些應用程序都需要最出色的性能、可擴展性和可用性。

維基百科解釋

Redis是一個使用ANSI C編寫的開源、支持網絡、基於內存、可選持久性的鍵值對存儲數據庫,並提供多種語言的API。

根據月度排行網站DB-Engines.com的數據顯示,Redis是最流行的鍵值對存儲數據庫。

菜鳥教程解釋

Redis 是完全開源免費的,遵守BSD協議,是一個高性能的key-value數據庫

Redis 與其他 key - value 緩存產品有以下三個特點:

  • Redis支持數據的持久化,可以將內存中的數據保存在磁盤中,重啟的時候可以再次加載進行使用。
  • Redis不僅僅支持簡單的key-value類型的數據,同時還提供list,set,zset,hash等數據結構的存儲。
  • Redis支持數據的備份,即master-slave模式的數據備份。

記憶:

Redis是一個內存數據庫,它保存在磁盤上。 數據模型是鍵值(Key-Value),但支持許多不同類型的值:Strings, Lists, Sets, Sorted Sets, Hashes (字符串,列表,集合,排序集合,哈希)

2. 為什麽選擇 Redis?

  • 內存中數據存儲

  • 靈活的數據結構

  • 簡單性和易用性

  • 復制和持久性

  • 高可用性和可擴展性

  • 可延展性

2.1 內存中數據存儲

PostgreSQL、Cassandra、MongoDB 等數據庫將大部分數據存儲在磁盤或 SSD 上,而 Redis 則將所有數據存儲在服務器的主內存上。在傳統的基於磁盤的數據庫中,大多數操作都需要往返磁盤。相比之下,Redis 之類的內存數據存儲不會受到相同的損失,因此可以支持更多操作,並提供更快的響應速度。它可以提供超快的性能,讀取或寫入操作的平均時間不到一毫秒,並支持每秒數百萬次的操作。

2.2 靈活的數據結構

與提供有限數據結構的簡單鍵值數據存儲不同,Redis 可提供各種各樣的數據結構,以滿足您的應用程序需求。Redis 數據類型包括:字符串,可以是最大 512MB 的文本或二進制數據;列表,按添加順序列出的字符串集合;集,未排序的字符串集合,支持與其他集類型的相交、聯合以及差運算;排序集,根據值排序的集;哈希,同於存儲字段和值的列表;地理空間,用於標記存儲位置坐標;位圖,提供位級操作;以及 HyperLogLog,估算一個數據集中唯一項目的概率數據結構。

豐富的數據類型 – Redis支持二進制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數據類型操作

2.3 簡單性和易用性

借助 Redis,您可以減少用於存儲、訪問和使用應用程序中的數據的代碼行數,從而簡化您的代碼。例如,如果您的應用程序將數據存儲在 HashMap 中,而您想將這些數據存儲在數據存儲中,那麽只需使用 Redis 哈希數據結構來存儲這些數據即可。至於沒有哈希數據結構的數據存儲中的相似任務,則需要許多行代碼才能從一種格式轉換為另一種格式。Redis 附帶有原生數據結構和許多選項,以操作您的數據並與之交互。一百多個開源客戶端可供 Redis 開發者使用。

支持的語言包括 Java、Python、PHP、C、C++、C#、JavaScript、Node.js、Ruby、R、Go 等。

2.4 復制和持久性

Redis 采用的是主副本架構,並支持異步復制,用戶執行此類復制時可以將數據復制到多個副本服務器。它能夠提供更出色的讀取性能 (因為請求可以在多個服務器間進行拆分) 和恢復功能 (主服務器發生中斷時)。為了實現持久性,Redis 支持時間點備份 (將 Redis 數據集復制到磁盤),並支持創建僅附加文件 (AOF),以便在寫入每個數據變更項時將其存儲到磁盤。

Redis支持主從同步。數據可以從主服務器向任意數量的從服務器上同步,從服務器可以是關聯其他從服務器的主服務器。這使得Redis可執行單層樹復制。從盤可以有意無意的對數據進行寫操作。由於完全實現了發布/訂閱機制,使得從數據庫在任何地方同步樹時,可訂閱一個頻道並接收主服務器完整的消息發布記錄。同步對讀取操作的可擴展性和數據冗余很有幫助。

2.5 高可用性和可擴展性

Redis 在單個主節點或群集拓撲中提供主副本架構。這讓您可以構建高度可用的解決方案,從而提供一致的性能和可靠性。如果您需要調整群集大小,它還為您提供了多種擴展選項,包括縱向擴展和橫向擴展、縱向縮減和縱向縮減,應有盡有。這讓您的群集能夠根據您的需求而發展。

2.6 可延展性

Redis 是一個開源項目,由充滿活力的社區提供支持。Redis 是基於開放標準的,沒有任何供應商或技術限制。它支持開放的數據格式,並擁有大量客戶。此外,客戶還可以使用 Redis 模塊來擴展 Redis,以滿足他們的特定需求。

3. 什麽場景下用Redis?

這個問題相信是困惑很多初學者的一個較大的絆腳石,話不多說,我們開始繼續講解

  • 緩存
  • 聊天、消息收發和隊列
  • 會話存儲
  • 富媒體流
  • 地理空間
  • 機器學習
  • 實時分析

3.1 緩存

Redis 是實施高度可用的內存中緩存的絕佳選擇,它可以降低數據訪問延遲、提高吞吐量,並可以減輕關系數據庫和應用程序或 NoSQL 數據庫和應用程序的負載。Redis 能夠以亞毫秒級的響應時間為頻繁請求的項目提供支持,並支持您輕松擴展以滿足更高負載的需求,而無需增加昂貴的後端。使用 Redis 緩存的常見示例包括:數據庫查詢結果緩存、持久性會話緩存、網頁緩存,以及緩存頻繁使用的對象 (例如映像、文件和元數據) 等。

3.2 聊天、消息收發和隊列

Redis 支持發布/訂閱、模式匹配和各種數據結構,例如列表、排序集和哈希,以支持各種類型的數據內容。這使得 Redis 能夠支持高性能的聊天室、實時評論流、社交媒體信息以及服務器內部通信。借助 Redis 列表數據結構,客戶能夠輕松實施輕量級隊列。這類列表提供了原子操作和屏蔽功能,適用於各種需要可靠消息代理或循環表的應用程序。

3.3 會話存儲

作為具備高可用性和持久性的內存中數據存儲,Redis 是應用程序開發人員用來為 Internet 級應用程序存儲和管理會話數據的常見選擇。Redis 可提供管理會話數據 (如用戶配置文件、憑證、會話狀態和用戶特定的個性化) 所需的亞毫秒級延遲、可擴展性和彈性。

3.4 遊戲排行榜

Redis 是尋求構建實時排行榜的遊戲開發者的熱門選擇。可直接使用 Redis 有序集數據結構,此結構實現了元素的唯一性,同時又可維護按元素分數排序的列表。創建實時排序表像用戶分數在每次更改後進行更新一樣簡單。您也可以使用時間戳作為分數,使用有序集處理時間序列數據。

3.6 富媒體流

Redis 提供了一個快速的內存中數據存儲,支持實時流使用案例。Redis 可存儲用於用戶配置文件和查看歷史記錄的元數據、數百萬用戶的身份驗證信息/令牌,以及清單文件,以便 CDN 能夠將視頻一次性流式傳輸到數百萬移動和桌面用戶。

3.7 地理空間

Redis 提供專門構建的內存中數據結構和運算符,以便從規模和速度方面管理實時地理空間數據。由於包含可用於實時存儲、處理和分析地理空間數據的 GEOADD、GEODIST、GEORADIUS 和 GEORADIUSBYMEMBER 等多個命令,Redis 可以輕松快速地進行地理空間分析。您可以使用 Redis 向應用程序添加基於位置的功能,如駕駛時間、駕駛距離和興趣點。

3.8 機器學習

數據驅動的現代化應用程序需要機器學習來快速處理數據量、數據多樣性和數據速率,並自動制定決策。對於遊戲和金融服務中的欺詐檢測、廣告技術中的實時競價,以及共享約會和共享單車中的配對等使用案例而言,能夠在幾十毫秒內處理實時數據並做出決策至關重要。Redis 為您提供了快速的內存中數據存儲,可快速構建、培訓和部署機器學習模型。

3.9 實時分析

Redis 可作為內存中數據存儲,與流解決方案 (例如 Apache Kafka 和 Amazon Kinesis) 搭配使用,以亞毫秒級延遲提取、處理和分析實時數據。Redis 是實時分析使用案例的理想選擇,例如社交媒體分析、廣告投放、個性化和 IoT。

4. Redis 支持那些語言?

Redis 提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客戶端和API,使用很方便。

技術分享圖片

記憶:支持多種編程語言

5. Redis 下載

5.1 Linux 版本下載

Redis官網下載地址: https://redis.io/download

如果需要下載Linux 版本的Redis,那麽可在Redis官網下載最新版本即可。

當前最新Redis Linux 版本4.0.9

其他下載地址:http://download.redis.io/releases/

5.2 Windows 版本下載

Redis 沒有官方的Windows版本,但是微軟開源技術團隊(Microsoft Open Tech group)開發和維護著這個 Win64 的版本

Redis Windows 版本GitHub下載:https://github.com/MicrosoftArchive/redis/releases

當前Windows 最新版本是3.2.1

技術分享圖片

除此之外,我發現國內提供了兩個Redis 中文鏡像網站,但可能下載的不是最新的,學習可以在上面看資料。

Redis中文官網下載: http://www.redis.cn/

Redis 中文網: http://www.redis.net.cn/

很好的菜鳥入門教程:http://www.runoob.com/redis/redis-tutorial.html

6. Redis 安裝

6.1 Windows 版本安裝

1.下載好安裝包後解壓到如下目錄

技術分享圖片

2. 打開一個 cmd 窗口,使用cd命令切換目錄到 C:\app\Redis\Redis-x64-3.2.100 運行 以下命令。

redis-server.exe redis.windows.conf

Tips:

Tips: 這裏要註意下,必須打開的是cmd窗口,windows 系統自帶的Windows PowerShell 執行命令會失敗

如果想方便的話,可以把 redis 的路徑加到系統的環境變量裏,這樣就省得再輸路徑了,後面的那個 redis.windows.conf 可以省略,如果省略,會啟用默認的。

輸入之後,會顯示如下界面:

技術分享圖片

這個操作的作用是啟動Redis 服務,就類似我們熟知的啟動了tomcat 服務一樣的道理。

3. 再用WIndows +R 快捷鍵打開一個新的CMD

技術分享圖片

Tips: 這時候必須另啟一個cmd窗口,原來的不要關閉,不然就無法訪問服務端了。

4.切換到redis目錄下運行 以下命令,進入redis Shell中

redis-cli.exe -h 127.0.0.1 -p 6379

5. 驗證安裝是否正確,輸入以下命令設置鍵值對

set myKey abc

6. 輸入以下命令取出鍵值對

get myKey

執行效果如下圖所示:

技術分享圖片

到這裏我有些不敢相信,這就是傳說中的Redis?

沒錯,這就是Redis。

我們回顧下Redis 的概念

Redis是一個內存數據庫,它保存在磁盤上。 數據模型是鍵值(Key-Value),但支持許多不同類型的值:Strings, Lists, Sets, Sorted Sets, Hashes (字符串,列表,集合,排序集合,哈希)

此時的你有沒有發現其實Redis也許並沒有我們想象中的那麽復雜,到這裏我們應該有這樣一個概念:

Redis 數據的寫入和讀取是通過Key和value 以不同的數據類型放入到內存中,由於是在內存中處理,數據處理和響應速度自然會快很多。

當然Redis 不止如此,它還可以將內存中的數據保存在磁盤中,重啟的時候可以再次加載進行使用。

7. Redis 配置

Redis 的Linux 版本的配置文件位於 Redis 安裝目錄下,文件名為 redis.conf。

Redis的windows 版本的配置文件存放在C:\app\Redis\Redis-x64-3.2.100\redis.windows.conf 和C:\app\Redis\Redis-x64-3.2.100\redis.windows-service.conf中。

配置文件中包括端口號,服務器IP地址綁定等信息。

7.1 獲取配置信息

我們可以通過 CONFIG 命令查看或設置配置項,

語法

Redis CONFIG 命令格式如下:

CONFIG GET CONFIG_SETTING_NAME

使用* 號獲取所有配置信息

CONFIG GET *

執行命令後效果如圖所示

技術分享圖片

上圖中我們可以看到,配置文件也是以鍵值對保存的,timeout 超時時間默認是0

比如我們想只獲取這個配置文件信息,可以這麽做

config get timeout

技術分享圖片

7.2 修改配置信息

你可以通過修改 redis.conf 文件或使用 CONFIG set 命令來修改配置

語法

CONFIG SET 命令基本語法:

CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE 

比如我們想要修改剛才timeout 的值,那麽可以這麽做

config set timeout 1

技術分享圖片

再次讀出來看看,我們應該發現已經修改成功了。

技術分享圖片

其他參數說明

技術分享圖片
redis.conf 配置項說明如下:

1. Redis默認不是以守護進程的方式運行,可以通過該配置項修改,使用yes啟用守護進程

    daemonize no

2. 當Redis以守護進程方式運行時,Redis默認會把pid寫入/var/run/redis.pid文件,可以通過pidfile指定

    pidfile /var/run/redis.pid

3. 指定Redis監聽端口,默認端口為6379,作者在自己的一篇博文中解釋了為什麽選用6379作為默認端口,因為6379在手機按鍵上MERZ對應的號碼,而MERZ取自意大利歌女Alessia Merz的名字

    port 6379

4. 綁定的主機地址

    bind 127.0.0.1

5.當 客戶端閑置多長時間後關閉連接,如果指定為0,表示關閉該功能

    timeout 300

6. 指定日誌記錄級別,Redis總共支持四個級別:debug、verbose、notice、warning,默認為verbose

    loglevel verbose

7. 日誌記錄方式,默認為標準輸出,如果配置Redis為守護進程方式運行,而這裏又配置為日誌記錄方式為標準輸出,則日誌將會發送給/dev/null

    logfile stdout

8. 設置數據庫的數量,默認數據庫為0,可以使用SELECT <dbid>命令在連接上指定數據庫id

    databases 16

9. 指定在多長時間內,有多少次更新操作,就將數據同步到數據文件,可以多個條件配合

    save <seconds> <changes>

    Redis默認配置文件中提供了三個條件:

    save 900 1

    save 300 10

    save 60 10000

    分別表示900秒(15分鐘)內有1個更改,300秒(5分鐘)內有10個更改以及60秒內有10000個更改。

 

10. 指定存儲至本地數據庫時是否壓縮數據,默認為yes,Redis采用LZF壓縮,如果為了節省CPU時間,可以關閉該選項,但會導致數據庫文件變的巨大

    rdbcompression yes

11. 指定本地數據庫文件名,默認值為dump.rdb

    dbfilename dump.rdb

12. 指定本地數據庫存放目錄

    dir ./

13. 設置當本機為slav服務時,設置master服務的IP地址及端口,在Redis啟動時,它會自動從master進行數據同步

    slaveof <masterip> <masterport>

14. 當master服務設置了密碼保護時,slav服務連接master的密碼

    masterauth <master-password>

15. 設置Redis連接密碼,如果配置了連接密碼,客戶端在連接Redis時需要通過AUTH <password>命令提供密碼,默認關閉

    requirepass foobared

16. 設置同一時間最大客戶端連接數,默認無限制,Redis可以同時打開的客戶端連接數為Redis進程可以打開的最大文件描述符數,如果設置 maxclients 0,表示不作限制。當客戶端連接數到達限制時,Redis會關閉新的連接並向客戶端返回max number of clients reached錯誤信息

    maxclients 128

17. 指定Redis最大內存限制,Redis在啟動時會把數據加載到內存中,達到最大內存後,Redis會先嘗試清除已到期或即將到期的Key,當此方法處理 後,仍然到達最大內存設置,將無法再進行寫入操作,但仍然可以進行讀取操作。Redis新的vm機制,會把Key存放內存,Value會存放在swap區

    maxmemory <bytes>

18. 指定是否在每次更新操作後進行日誌記錄,Redis在默認情況下是異步的把數據寫入磁盤,如果不開啟,可能會在斷電時導致一段時間內的數據丟失。因為 redis本身同步數據文件是按上面save條件來同步的,所以有的數據會在一段時間內只存在於內存中。默認為no

    appendonly no

19. 指定更新日誌文件名,默認為appendonly.aof

     appendfilename appendonly.aof

20. 指定更新日誌條件,共有3個可選值: 
    no:表示等操作系統進行數據緩存同步到磁盤(快) 
    always:表示每次更新操作後手動調用fsync()將數據寫到磁盤(慢,安全) 
    everysec:表示每秒同步一次(折衷,默認值)

    appendfsync everysec

 

21. 指定是否啟用虛擬內存機制,默認值為no,簡單的介紹一下,VM機制將數據分頁存放,由Redis將訪問量較少的頁即冷數據swap到磁盤上,訪問多的頁面由磁盤自動換出到內存中(在後面的文章我會仔細分析Redis的VM機制)

     vm-enabled no

22. 虛擬內存文件路徑,默認值為/tmp/redis.swap,不可多個Redis實例共享

     vm-swap-file /tmp/redis.swap

23. 將所有大於vm-max-memory的數據存入虛擬內存,無論vm-max-memory設置多小,所有索引數據都是內存存儲的(Redis的索引數據 就是keys),也就是說,當vm-max-memory設置為0的時候,其實是所有value都存在於磁盤。默認值為0

     vm-max-memory 0

24. Redis swap文件分成了很多的page,一個對象可以保存在多個page上面,但一個page上不能被多個對象共享,vm-page-size是要根據存儲的 數據大小來設定的,作者建議如果存儲很多小對象,page大小最好設置為32或者64bytes;如果存儲很大大對象,則可以使用更大的page,如果不 確定,就使用默認值

     vm-page-size 32

25. 設置swap文件中的page數量,由於頁表(一種表示頁面空閑或使用的bitmap)是在放在內存中的,,在磁盤上每8個pages將消耗1byte的內存。

     vm-pages 134217728

26. 設置訪問swap文件的線程數,最好不要超過機器的核數,如果設置為0,那麽所有對swap文件的操作都是串行的,可能會造成比較長時間的延遲。默認值為4

     vm-max-threads 4

27. 設置在向客戶端應答時,是否把較小的包合並為一個包發送,默認為開啟

    glueoutputbuf yes

28. 指定在超過一定的數量或者最大的元素超過某一臨界值時,采用一種特殊的哈希算法

    hash-max-zipmap-entries 64

    hash-max-zipmap-value 512

29. 指定是否激活重置哈希,默認為開啟(後面在介紹Redis的哈希算法時具體介紹)

    activerehashing yes

30. 指定包含其它的配置文件,可以在同一主機上多個Redis實例之間使用同一份配置文件,而同時各個實例又擁有自己的特定配置文件

    include /path/to/local.conf
View Code

8. Redis 數據類型詳解

Redis 數據類型

Redis支持五種數據類型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

8.1 String(字符串)

  • string是redis最基本的類型,你可以理解成與Memcached一模一樣的類型,一個key對應一個value。
  • string類型是二進制安全的。意思是redis的string可以包含任何數據。比如jpg圖片或者序列化的對象 。
  • string類型是Redis最基本的數據類型,一個鍵最大能存儲512MB。

實例:

比如設置一個key 叫做testkey,value 值設置為 this is test value

執行寫入命令:

set testkey "this is test value"

執行讀取命令

get testkey

技術分享圖片

Tips: 一個鍵最大能存儲512MB。

8.2 Hash(哈希)

  • Redis hash 是一個鍵值(key=>value)對集合。
  • Redis hash是一個string類型的field和value的映射表,hash特別適合用於存儲對象。

比如我們想創建一個Hash 名稱叫做myhash,裏面存兩個key,兩個value

Key -------------Value

field1 --------- "Hello"

field2 ----------"World"

執行創建Hash 和設置key和value 命令如下

HMSET myhash field1 "Hello" field2 "World"

技術分享圖片

讀取field1 的值

HGET myhash field1

技術分享圖片

讀取field2的值

HGET myhash field2

技術分享圖片

獲取所有myhash 裏面的值

HGETALL myhash

技術分享圖片

以上實例中 hash 數據類型存儲了包含用戶腳本信息的用戶對象。 實例中我們使用了 Redis HMSET, HGETALL 命令

每個 hash 可以存儲 232 -1 鍵值對(40多億)。

8.3 List(列表)

Redis 列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)。

比如我們想存放 redis, mongodb, rabitmq 這三個字符串到一個List集合裏面

那麽我們需要依次執行下面命令

lpush runoob redis
lpush runoob mongodb
lpush runoob rabitmg

技術分享圖片

想遍歷這個list

lrange runoob 0 2

技術分享圖片

只遍歷前兩個數據

技術分享圖片

列表最多可存儲 232 - 1 元素 (4294967295, 每個列表可存儲40多億)。

8.4 Set(集合)

  • Redis的Set是string類型的無序集合。
  • 集合是通過哈希表實現的,所以添加,刪除,查找的復雜度都是O(1)。

sadd 命令

添加一個 string 元素到 key 對應的 set 集合中,成功返回1,如果元素已經在集合中返回 0,如果 key 對應的 set 不存在則返回錯誤。

sadd key member

實例

比如我們想要依次將 redis,mongodb,rabitmg,rabitmg 添加到一個叫做myset的set集合中

依次執行下面命令

sadd myset "redis"

sadd myset "mongodb"
sadd myset "rabitmg"
sadd myset "rabitmg"

技術分享圖片

Tips: 回顯的1 表示添加成功的個數,添加失敗返回0

然後遍歷所有setj集合

smembers myset

技術分享圖片

你是不是很奇怪,我們對rabitmg 添加了兩次,但是結果只有一個rabitmg

註意:以上實例中 雖然rabitmq 添加了兩次,但根據集合內元素的唯一性,第二次插入的元素將被忽略。

集合中最大的成員數為 232 - 1(4294967295, 每個集合可存儲40多億個成員)。

8.5 zset(sorted set:有序集合)

  • Redis zset 和 set 一樣也是string類型元素的集合,且不允許重復的成員。
  • Set 是不允許重復的無序集合,zset 是不允許重復的有序集合。
  • 不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。
  • zset的成員是唯一的,但分數(score)卻可以重復。

8.5.1 添加數據到Zset 集合

添加元素到集合,元素在集合中存在則更新對應score

zadd key score member 

實例

比如我們想要依次將 redis,mongodb,admin,monogodb 添加到一個叫做myzset的zset集合中

技術分享圖片

8.5.2 遍歷Zset 集合

遍歷myzset集合中 0-1000範圍內的數據
ZRANGEBYSCORE myzset 0 1000 

技術分享圖片

Tips: 細心的你一定發現,這些集合中的數據排序是按照設定的那個數字來排序的,

admin 數字設置的是2,monogodb 設置的是3,所以admin 在monogodb 的前面。

9.總結

好了到現在我們已經對Redis有了初步的認識,再來看看這幾個問題,如果能回答出來,那麽就說明你掌握了本篇的內容。

  1. 什麽是Redis?
  2. 為什麽選擇 Redis?
  3. 什麽場景下用Redis?
  4. Redis 支持哪些語言?
  5. Redis下載
  6. Redis 如何安裝? windows 安裝
  7. Redis 如何修改配置?
  8. Redis Strings, Lists, Sets, Sorted Sets, Hashes 多種數據類型使用
  9. 總結

本篇博文在windows 下使用Redis原生的命令行來啟動Redis 服務,操作Redis的多種數據類型

其實前面我們已經提到,Redis支持多種語言,所以也提供了各個語言平臺的圖形化界面操作工具。

10.更多學習資源分享:

Redis 官網:https://redis.io/

菜鳥教程:http://www.runoob.com/redis/redis-tutorial.html

Redis中國用戶組: http://www.redis.cn/

Redis中文網1:http://redis.majunwei.com

Redis 中文網2:http://www.redis.net.cn/

Redis命令中文參考手冊:http://redis.readthedocs.io/en/2.4/index.html

解開Redis的神秘面紗