最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

初始Redis概念、特性、安裝使用場(chǎng)景

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

一、什么是redis?

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

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

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

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

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

1. 速度快

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

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

Redis 6.0 引入了多線程機(jī)制,但主要用于網(wǎng)絡(luò)IO場(chǎng)景,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)對(duì)大量客戶端請(qǐng)求

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

2. 基于鍵值對(duì)

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

3. 豐富的功能

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

4. 簡單穩(wěn)定

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

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

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

6. 持久化

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

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

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

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

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

三、Redis使用場(chǎng)景

1. Redis可以做什么?

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

數(shù)據(jù)庫

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

緩存

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

消息隊(duì)列

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

2. Redis不宜做什么?

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

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

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

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

四、Redis重大版本

Redis版本發(fā)布

  • Redis 2.6 :2012年發(fā)布,支持服務(wù)端Lua腳本,鍵過期時(shí)間精確到毫秒,從節(jié)點(diǎn)新增只讀功能。
  • Redis 2.8 :2013年發(fā)布,優(yōu)化主從復(fù)制的PSYNC機(jī)制,支持通過config set配置maxclients,新增config rewrite命令。
  • Redis 3.0 :2015年發(fā)布,推出官方分布式方案Redis Cluster,優(yōu)化小對(duì)象內(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),升級(jí)Redis模塊API,RDB文件包含LFU/LRU信息。
  • Redis 6.0 :2020年發(fā)布,支持多線程IO,優(yōu)化模塊API,改進(jìn)過期鍵處理機(jī)制,新增SSL支持。
  • Redis 7.0 :2022年發(fā)布,新增Function自定義函數(shù)庫,支持Client-Eviction機(jī)制、Sharded-Pub/Sub,提供命令執(zhí)行耗時(shí)直方圖。

五、Ubuntu 安裝 Redis 6

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

Redis官方不支持Windows系統(tǒng),因?yàn)镽edis的特性與Linux息息相關(guān)。又由于Redis的優(yōu)秀特性,微軟的開源技術(shù)組也維護(hù)了一個(gè) 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. 檢驗(yàn)redis狀態(tài)

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

2. 啟動(dòng)redis客戶端

redis-cli

啟動(dòng)完成后輸入ping,若返回pong,則redis連接正常

使用ctrl + d 退出客戶端。

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

相關(guān)文章

  • 如何發(fā)現(xiàn) Redis 中的 BigKey及什么是 BigKey

    如何發(fā)現(xiàn) Redis 中的 BigKey及什么是 BigKey

    本文介紹Redis中BigKey的識(shí)別與處理,涵蓋使用redis-cli、RMA工具、慢查詢?nèi)罩镜确椒?以及拆分鍵、優(yōu)化邏輯、SCAN命令等策略,旨在提升Redis性能與穩(wěn)定性,感興趣的朋友跟隨小編一起看看吧
    2025-07-07
  • redis與memcached的區(qū)別_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    redis與memcached的區(qū)別_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Memcached是以LiveJurnal旗下Danga Interactive公司的Bard Fitzpatric為首開發(fā)的高性能分布式內(nèi)存緩存服務(wù)器。那么redis與memcached有什么區(qū)別呢?下面小編給大家介紹下redis與memcached的區(qū)別,感興趣的朋友參考下吧
    2017-08-08
  • NestJS+Redis實(shí)現(xiàn)手寫一個(gè)限流器

    NestJS+Redis實(shí)現(xiàn)手寫一個(gè)限流器

    限流是大型系統(tǒng)必備的保護(hù)措施,本文將結(jié)合redis , lua 腳本 以及 Nestjs Guard 來實(shí)現(xiàn) 限流的效果,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • 一文詳解Redis為什么一定要設(shè)置密碼原理

    一文詳解Redis為什么一定要設(shè)置密碼原理

    這篇文章主要為大家介紹了Redis為什么一定要設(shè)置密碼原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • redis添加key幾種方式

    redis添加key幾種方式

    本文主要介紹了redis添加key幾種方式,主要介紹了3種方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • Redis實(shí)現(xiàn)Session持久化的示例代碼

    Redis實(shí)現(xiàn)Session持久化的示例代碼

    Redis是內(nèi)存數(shù)據(jù)庫,數(shù)據(jù)都是存儲(chǔ)在內(nèi)存中,為了避免服務(wù)器斷電等原因?qū)е翿edis進(jìn)程異常退出后數(shù)據(jù)的永久丟失,本文主要介紹了Redis實(shí)現(xiàn)Session持久化的示例代碼,感興趣的可以了解一下
    2023-09-09
  • Redis?Cluster?實(shí)現(xiàn)多key事務(wù)操作的示例

    Redis?Cluster?實(shí)現(xiàn)多key事務(wù)操作的示例

    本文主要介紹了Redis?Cluster?實(shí)現(xiàn)多key事務(wù)操作,包括HashTag+Lua腳本、應(yīng)用層分步操作+補(bǔ)償機(jī)制、異步隊(duì)列+冪等消費(fèi)等方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-02-02
  • Redis 配置文件重要屬性的具體使用

    Redis 配置文件重要屬性的具體使用

    Redis在IT公司中的使用率自不必說,今天我們就來介紹一下Redis 配置文件重要屬性的具體使用,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Redis?List列表相關(guān)命令的用法詳解

    Redis?List列表相關(guān)命令的用法詳解

    這篇文章主要為大家詳細(xì)介紹了Redis中List列表相關(guān)命令的用法,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10
  • Redisson分布式限流的實(shí)現(xiàn)原理分析

    Redisson分布式限流的實(shí)現(xiàn)原理分析

    這篇文章主要介紹了Redisson分布式限流的實(shí)現(xiàn)原理分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07

最新評(píng)論

定州市| 如东县| 宝鸡市| 廉江市| 云安县| 修武县| 宜城市| 南康市| 凤庆县| 博白县| 衡山县| 金寨县| 图们市| 汕头市| 东辽县| 手机| 祥云县| 遂宁市| 祁东县| 汾阳市| 留坝县| 毕节市| 三台县| 泽州县| 河南省| 平乡县| 长乐市| 思茅市| 新巴尔虎左旗| 延庆县| 黄石市| 罗定市| 从江县| 麦盖提县| 两当县| 云安县| 泸州市| 九龙城区| 襄城县| 商丘市| 历史|