欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

初始Redis概念、特性、安裝使用場景

 更新時間:2025年07月28日 09:22:01   作者:卷卷卷土重來  
Redis是一款高性能的內(nèi)存鍵值對NoSQL數(shù)據(jù)庫,支持多種數(shù)據(jù)結(jié)構(gòu)及持久化機制,適用于緩存、消息隊列等場景,被廣泛應(yīng)用于各大企業(yè)及開源系統(tǒng),是開發(fā)運維必備技能,本文給大家介紹初始Redis概念、特性、安裝使用場景,感興趣的朋友一起看看吧

一、什么是redis?

Redis 是一款基于鍵值對(key-value)的 NoSQL 數(shù)據(jù)庫。與多數(shù)鍵值對數(shù)據(jù)庫不同,其值可由字符串(string)、哈希(hash)、列表(list)、集合(set)、有序集合(zset)、位圖(Bitmaps)、HyperLogLog、地理信息定位(GEO)等多種數(shù)據(jù)結(jié)構(gòu)和算法構(gòu)成,這使得 Redis 能滿足多樣的應(yīng)用場景。

Redis 的顯著優(yōu)勢在于將所有數(shù)據(jù)存儲于內(nèi)存中,因此讀寫性能極為出色。同時,它支持通過快照(RDB)和日志(AOF)兩種方式將內(nèi)存數(shù)據(jù)持久化到硬盤,確保斷電或機器故障時數(shù)據(jù)不會丟失。此外,Redis 還提供了鍵過期、發(fā)布訂閱、事務(wù)、流水線、Lua 腳本等附加功能,方便應(yīng)對這類場景。

如今,眾多重量級企業(yè)都在使用 Redis。國外如 Twitter、Instagram、Stack Overflow、Github 等;國內(nèi)則有新浪微博(堪稱全球最大的 Redis 使用者)、阿里巴巴、騰訊、搜狐、優(yōu)酷土豆、美團(tuán)、小米、唯品會等。此外,ELK 等諸多開源技術(shù)也將 Redis 作為重要組件,且 Redis 提供的模塊系統(tǒng)支持第三方進(jìn)行功能擴展,進(jìn)一步釋放其潛力。由此可見,熟練使用和運維 Redis 已成為開發(fā)與運維人員的必備技能。

二、 Redis特性的簡單認(rèn)識

Redis得到了眾多公司的青睞,必有其過人之處,下面是關(guān)于Redis的8個重要特性。

1. 速度快

相較于MySQL這類關(guān)系型數(shù)據(jù)庫,Redis的訪問速度要快很多,其原因大致可以分為以下四點:

  1. 內(nèi)存讀寫天然快:Redis的數(shù)據(jù)存放在內(nèi)存中,內(nèi)存訪問速度要遠(yuǎn)遠(yuǎn)快于硬盤,這也是Redis速度快的主要原因。(下圖是Google列出的各種硬件執(zhí)行速度,供參考)
  2. 單線程優(yōu)勢:Redis使用單線程模型,避免了線程切換和多線程加鎖競爭導(dǎo)致的性能損失

Redis 6.0 引入了多線程機制,但主要用于網(wǎng)絡(luò)IO場景,Redis的核心執(zhí)行的執(zhí)行依舊保持單線程模型

  1. 高效的數(shù)據(jù)結(jié)構(gòu):Redis采用了各種高效率的數(shù)據(jù)結(jié)構(gòu),如字符串(String)、哈希表(Hash)、有序集合(ZSet)、這些數(shù)據(jù)結(jié)構(gòu)的操作復(fù)雜度多為 O ( 1 ) 或者 O ( l o g N ) O(1) 或者 O(logN) O(1)或者O(logN) ,確保指令執(zhí)行高效。
  2. I/O多路復(fù)用技術(shù):采用I/O多路復(fù)用技術(shù),確保單線程也能高效應(yīng)對大量客戶端請求

各層級硬件執(zhí)行速度

2. 基于鍵值對

Redis是基于鍵值對的非關(guān)系型數(shù)據(jù)庫(NoSQL),所謂鍵值對就像C++的map,Python的dict等,這種結(jié)構(gòu)的優(yōu)勢就是插入數(shù)據(jù)和查詢數(shù)據(jù)更加高效。值得一提的是,Redis的值支持豐富的數(shù)據(jù)結(jié)構(gòu):字符串、哈希表、列表、集合、有序集合、位圖、HyperLogLog甚至在Redis3.2加入了地理位置相關(guān)功能。這些豐富的數(shù)據(jù)庫能幫助開發(fā)者開發(fā)應(yīng)對各類場景的應(yīng)用。

3. 豐富的功能

  • 鍵過期功能:到達(dá)一定時間自動刪除鍵值對,用于實現(xiàn)緩存
  • 發(fā)布訂閱功能:可用于實現(xiàn)消息系統(tǒng)
  • Lua腳本:可用Lua腳本執(zhí)行Redis命令
  • 簡單事務(wù)功能
  • 流水線(Pipeine): 使得客戶端能將一批命令一次傳到Redis,減少了網(wǎng)絡(luò)的開銷

4. 簡單穩(wěn)定

  • Redis源碼量少:早期甚至只有兩萬行,Redis3.0引入集群特性后增至5萬行左右,相對于其他數(shù)據(jù)庫來說代碼量少很多。
  • Redis采用單線程模型
  • Redis不依賴操作系統(tǒng)的各種類庫,自己實現(xiàn)事件處理相關(guān)功能。

5. 客戶端支持多種編程語言:

Redis提供了簡單的TCP通信協(xié)議:很多編程語言都可以方便的接入Redis,且由于Redis收到廣泛認(rèn)可,主流語言都已經(jīng)有開發(fā)者實現(xiàn)了良好的Redis支持,如C、C++、Java、PHP、Python、JS

6. 持久化

前面提到,Redis數(shù)據(jù)存放在內(nèi)存中,這保證了訪問速度很快,但是不夠安全。一旦發(fā)生斷電或者機器故障,重要的數(shù)據(jù)就可能會丟失。因此,Redis提供兩種持久化策略:RDB和AOF,可將內(nèi)存中的數(shù)據(jù)保存到硬盤中。后續(xù)我將對Redis持久化策略詳細(xì)說明。

7. 主從復(fù)制(Replication)

主從復(fù)制功能是分布式架構(gòu)的基礎(chǔ)。這一功能也將在后續(xù)博文中進(jìn)行演示。

8. 高可用(High Availability)和分布式(Distributed)

Redis 提供了高可用實現(xiàn)的 Redis 哨兵,能夠保證Redis節(jié)點故障檢測和故障自動轉(zhuǎn)移。也提供了 Reids 集群,這是真正的分布式實現(xiàn)。

三、Redis使用場景

1. Redis可以做什么?

Redis官網(wǎng)給出了三個方向:數(shù)據(jù)庫、緩存和消息隊列

數(shù)據(jù)庫

大多數(shù)情況下,數(shù)據(jù)庫考慮的是容量大,但也有一些高性能的場景考慮的是“速度快“,這是就可以直接采用Redis做數(shù)據(jù)庫

緩存

這是Redis最廣泛使用的場景。對于各類大型網(wǎng)站或者應(yīng)用程序,往往是少量的數(shù)據(jù)能滿足大量的用戶使用場景。因此,這類網(wǎng)站采用的方式都是用 MySQL 等數(shù)據(jù)庫存儲全量完整數(shù)據(jù),用Redis從數(shù)據(jù)庫中加載少量核心數(shù)據(jù)作為緩存,這樣的設(shè)計提升了用戶訪問數(shù)據(jù)的速度,也有效降低了后端的壓力。

消息隊列

Redis的開發(fā)者最早開發(fā)它就是為了將其作為消息隊列進(jìn)行使用的。但如今,在消息隊列方面,我們有很多更優(yōu)的選擇,因此,Redis做消息隊列的場景很少出現(xiàn)了。

2. Redis不宜做什么?

和所有技術(shù)一樣,Redis也有其適用場景與邊界,并非萬能解決方案。它既能高效解決特定問題,也存在不適合的應(yīng)用場景,這一點可從數(shù)據(jù)規(guī)模與數(shù)據(jù)冷熱兩個維度來分析。

從數(shù)據(jù)規(guī)模來看,數(shù)據(jù)可分為大規(guī)模數(shù)據(jù)與小規(guī)模數(shù)據(jù)。由于Redis的數(shù)據(jù)存儲依賴內(nèi)存,盡管如今內(nèi)存成本已大幅下降,但面對超大規(guī)模數(shù)據(jù)——例如每天數(shù)億條的用戶行為數(shù)據(jù)——若用Redis存儲,成本會高得難以承受,堪稱一個“無底洞”。

從數(shù)據(jù)冷熱屬性來看,數(shù)據(jù)有熱數(shù)據(jù)與冷數(shù)據(jù)之分。熱數(shù)據(jù)指需要頻繁操作的數(shù)據(jù),冷數(shù)據(jù)則反之。以視頻網(wǎng)站為例,視頻基本信息在各業(yè)務(wù)線中常被調(diào)用,屬于熱數(shù)據(jù);而用戶的觀看記錄未必會被頻繁訪問,可歸為冷數(shù)據(jù)。暫且不考慮兩者在數(shù)據(jù)規(guī)模上的差異,僅從數(shù)據(jù)冷熱角度而言,將冷數(shù)據(jù)存于Redis無疑是對內(nèi)存的浪費,而把熱數(shù)據(jù)放入Redis,既能加速讀寫操作,又能減輕后端存儲的負(fù)載,可謂事半功倍。

因此,Redis并非“萬金油”。相信隨著對Redis的深入學(xué)習(xí),我們會更清晰地把握它真正的適用場景。

四、Redis重大版本

Redis版本發(fā)布

  • Redis 2.6 :2012年發(fā)布,支持服務(wù)端Lua腳本,鍵過期時間精確到毫秒,從節(jié)點新增只讀功能。
  • Redis 2.8 :2013年發(fā)布,優(yōu)化主從復(fù)制的PSYNC機制,支持通過config set配置maxclients,新增config rewrite命令。
  • Redis 3.0 :2015年發(fā)布,推出官方分布式方案Redis Cluster,優(yōu)化小對象內(nèi)存訪問,新增client pause命令。
  • Redis 3.2 :2016年發(fā)布,添加GEO地理信息處理功能,引入List新編碼類型quicklist,新增hstrlen命令。
  • Redis 4.0 :2017年發(fā)布,引入模塊系統(tǒng),優(yōu)化主從復(fù)制為PSYNC2.0,新增LFU緩存淘汰算法,支持非阻塞del/flush命令。
  • Redis 5.0 :2018年發(fā)布,新增流數(shù)據(jù)類型(Stream),升級Redis模塊API,RDB文件包含LFU/LRU信息。
  • Redis 6.0 :2020年發(fā)布,支持多線程IO,優(yōu)化模塊API,改進(jìn)過期鍵處理機制,新增SSL支持。
  • Redis 7.0 :2022年發(fā)布,新增Function自定義函數(shù)庫,支持Client-Eviction機制、Sharded-Pub/Sub,提供命令執(zhí)行耗時直方圖。

五、Ubuntu 安裝 Redis 6

相較于Redis 7, Redis 6 已經(jīng)具備了大部分功能,且更容易安裝。

Redis官方不支持Windows系統(tǒng),因為Redis的特性與Linux息息相關(guān)。又由于Redis的優(yōu)秀特性,微軟的開源技術(shù)組也維護(hù)了一個 Redis 的windows版本分支,不過仍然建議在Linux上學(xué)習(xí)使用Redis。

1. 更新apt軟件源

sudo apt update

2. 安裝 Redis

sudo apt install redis

3. 修改配置文件支持遠(yuǎn)程連接

修改 /etc/redis/redis.conf (注意需要sudo權(quán)限)

  • 修改 bind 127.0.0.1 為 bind 0.0.0.0
  • 修改protected-mode yes 為 protected-mode no

4. 重啟redis服務(wù)

sudo service redis-server restart

5. 檢驗redis狀態(tài)

  1. 通過netstat命令
netstat -anp | grep redis

2. 啟動redis客戶端

redis-cli

啟動完成后輸入ping,若返回pong,則redis連接正常

使用ctrl + d 退出客戶端。

到此這篇關(guān)于初始Redis概念、特性、使用場景、安裝教程的文章就介紹到這了,更多相關(guān)redis安裝使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Redis有序集合類型的操作_動力節(jié)點Java學(xué)院整理

    Redis有序集合類型的操作_動力節(jié)點Java學(xué)院整理

    今天通過本文給大家說一下Redis中最后一個數(shù)據(jù)類型 “有序集合類型”,需要的的朋友參考下吧
    2017-08-08
  • Redis中Bitmap的使用示例

    Redis中Bitmap的使用示例

    本文主要介紹了Redis中Bitmap的使用示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Redis可視化客戶端小結(jié)

    Redis可視化客戶端小結(jié)

    因為 Redis 官方只提供了命令行版的 Redis 客戶端 redis-cli,以至于我們在使用的時候會比較麻煩,而且命令行版的客戶端看起來也不夠直觀,下面是我這些年使用過的一些 Redis 可視化客戶端,分享給大家
    2021-06-06
  • Redis消息隊列實現(xiàn)秒殺教程

    Redis消息隊列實現(xiàn)秒殺教程

    這篇文章主要介紹了Redis消息隊列實現(xiàn)秒殺教程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Redis大key和多key拆分的解決方案

    Redis大key和多key拆分的解決方案

    大key會導(dǎo)致內(nèi)存使用過高,多key可能導(dǎo)致查詢效率低下,本文主要介紹了Redis大key和多key拆分的解決方案,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Redis 命令整理并說明如何使用

    Redis 命令整理并說明如何使用

    這篇文章主要介紹了Redis 命令整理并說明如何使用的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Redis Redisson lock和tryLock的原理分析

    Redis Redisson lock和tryLock的原理分析

    這篇文章主要介紹了Redis Redisson lock和tryLock的原理分析,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • redis中key的設(shè)置方法步驟

    redis中key的設(shè)置方法步驟

    在本篇文章里小編給大家分享了關(guān)于redis中key的設(shè)置方法步驟以及相關(guān)知識點,有興趣的朋友們學(xué)習(xí)參考下。
    2019-07-07
  • redis分布式鎖與zk分布式鎖的對比分析

    redis分布式鎖與zk分布式鎖的對比分析

    這篇文章主要介紹了redis分布式鎖與zk分布式鎖的對比分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Redis事務(wù)涉及的watch、multi等命令詳解

    Redis事務(wù)涉及的watch、multi等命令詳解

    這篇文章主要介紹了Redis事務(wù)涉及的watch、multi等命令,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2018-10-10

最新評論