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

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

 更新時(shí)間:2025年07月28日 09:22:01   作者:卷卷卷土重來(lái)  
Redis是一款高性能的內(nèi)存鍵值對(duì)NoSQL數(shù)據(jù)庫(kù),支持多種數(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ù)庫(kù)。與多數(shù)鍵值對(duì)數(shù)據(jù)庫(kù)不同,其值可由字符串(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í),它支持通過(guò)快照(RDB)和日志(AOF)兩種方式將內(nèi)存數(shù)據(jù)持久化到硬盤,確保斷電或機(jī)器故障時(shí)數(shù)據(jù)不會(huì)丟失。此外,Redis 還提供了鍵過(guò)期、發(fā)布訂閱、事務(wù)、流水線、Lua 腳本等附加功能,方便應(yīng)對(duì)這類場(chǎng)景。

如今,眾多重量級(jí)企業(yè)都在使用 Redis。國(guó)外如 Twitter、Instagram、Stack Overflow、Github 等;國(guó)內(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特性的簡(jiǎn)單認(rèn)識(shí)

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

1. 速度快

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

  1. 內(nèi)存讀寫天然快:Redis的數(shù)據(jù)存放在內(nèi)存中,內(nèi)存訪問(wèn)速度要遠(yuǎn)遠(yuǎn)快于硬盤,這也是Redis速度快的主要原因。(下圖是Google列出的各種硬件執(zhí)行速度,供參考)
  2. 單線程優(yōu)勢(shì):Redis使用單線程模型,避免了線程切換和多線程加鎖競(jìng)爭(zhēng)導(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ù)庫(kù)(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ù)庫(kù)能幫助開發(fā)者開發(fā)應(yīng)對(duì)各類場(chǎng)景的應(yīng)用。

3. 豐富的功能

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

4. 簡(jiǎn)單穩(wěn)定

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

5. 客戶端支持多種編程語(yǔ)言:

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

6. 持久化

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

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ù)庫(kù)、緩存和消息隊(duì)列

數(shù)據(jù)庫(kù)

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

緩存

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

消息隊(duì)列

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

2. Redis不宜做什么?

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

從數(shù)據(jù)規(guī)模來(lái)看,數(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è)“無(wú)底洞”。

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

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

四、Redis重大版本

Redis版本發(fā)布

  • Redis 2.6 :2012年發(fā)布,支持服務(wù)端Lua腳本,鍵過(guò)期時(shí)間精確到毫秒,從節(jié)點(diǎn)新增只讀功能。
  • Redis 2.8 :2013年發(fā)布,優(yōu)化主從復(fù)制的PSYNC機(jī)制,支持通過(guò)config set配置maxclients,新增config rewrite命令。
  • Redis 3.0 :2015年發(fā)布,推出官方分布式方案Redis Cluster,優(yōu)化小對(duì)象內(nèi)存訪問(wèn),新增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)過(guò)期鍵處理機(jī)制,新增SSL支持。
  • Redis 7.0 :2022年發(fā)布,新增Function自定義函數(shù)庫(kù),支持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版本分支,不過(guò)仍然建議在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. 通過(guò)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)文章

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

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

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

    Redis中Bitmap的使用示例

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

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

    因?yàn)?Redis 官方只提供了命令行版的 Redis 客戶端 redis-cli,以至于我們?cè)谑褂玫臅r(shí)候會(huì)比較麻煩,而且命令行版的客戶端看起來(lái)也不夠直觀,下面是我這些年使用過(guò)的一些 Redis 可視化客戶端,分享給大家
    2021-06-06
  • Redis消息隊(duì)列實(shí)現(xiàn)秒殺教程

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

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

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

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

    Redis 命令整理并說(shuō)明如何使用

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

    Redis Redisson lock和tryLock的原理分析

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

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

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

    redis分布式鎖與zk分布式鎖的對(duì)比分析

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

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

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

最新評(píng)論