Redis指南及6.2.x版本安裝過(guò)程
概述
Redis官網(wǎng):https://redis.io/
Redis 是完全開(kāi)源免費(fèi)的,遵守BSD協(xié)議,是一個(gè)高性能(NOSQL)的key-value數(shù)據(jù)庫(kù),Redis是一個(gè)開(kāi)源的使用ANSI C語(yǔ)言編寫(xiě)、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的API。
什么是BSD協(xié)議?
BSD是"Berkeley Software Distribution"的縮寫(xiě),意思是"伯克利軟件發(fā)行版"。
BSD開(kāi)源協(xié)議是一個(gè)給于使用者很大自由的協(xié)議??梢宰杂傻氖褂?,修改源代碼,也可以將修改后的代碼作為開(kāi)源或者專(zhuān)有軟件再發(fā)布。BSD代碼鼓勵(lì)代碼共享,但需要尊重代碼作者的著作權(quán)。
BSD由于允許使用者修改和重新發(fā)布代碼,也允許使用或在BSD代碼上開(kāi)發(fā)商業(yè)軟件發(fā)布和銷(xiāo)售,因此是對(duì)商業(yè)集成很友好的協(xié)議。
redis在4.0之前一直是單線程,在4.0之后引入了多線程,但是處理讀寫(xiě)請(qǐng)求的線程也就只有一個(gè)。
Redis特點(diǎn)
性能極高 – 由于數(shù)據(jù)是存儲(chǔ)在內(nèi)存中(Redis能讀的速度是110000次/s,寫(xiě)的速度是81000次/s )。
豐富的數(shù)據(jù)類(lèi)型 – Redis支持的類(lèi)型 String, Hash,List, Set 及 Ordered Set 等數(shù)據(jù)類(lèi)型操作。
原子性 – Redis的所有操作都是原子性的,意思就是要么成功執(zhí)行要么失敗完全不執(zhí)行。單個(gè)操作是原子性的。多個(gè)操作也支持事務(wù),即原子性,通過(guò)MULTI和EXEC指令包起來(lái)。
豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過(guò)期等等特性。
高速讀寫(xiě),redis使用自己實(shí)現(xiàn)的分離器,代碼量很短,沒(méi)有使用lock(MySQL),因此效率非常高。
Redis是一個(gè)簡(jiǎn)單的,高效的,分布式的,基于內(nèi)存的緩存工具。
架設(shè)好服務(wù)器后,通過(guò)網(wǎng)絡(luò)連接(類(lèi)似數(shù)據(jù)庫(kù)),提供Key-Value式緩存服務(wù)。
簡(jiǎn)單,是Redis突出的特色。
簡(jiǎn)單可以保證核心功能的穩(wěn)定和優(yōu)異。
Redis應(yīng)用場(chǎng)景
Redis可以用作數(shù)據(jù)庫(kù)、緩存、秒殺、計(jì)數(shù)器、排行榜、熱點(diǎn)數(shù)據(jù)(經(jīng)常會(huì)被查詢(xún),但是不經(jīng)常被修改或者刪除的數(shù)據(jù))、分布式鎖、分布式ID、和消息中間件等大部分功能等性能密切相關(guān)場(chǎng)景里。
緩存
緩存現(xiàn)在幾乎是所有中大型網(wǎng)站都在用的必殺技,合理的利用緩存不僅能夠提升網(wǎng)站訪問(wèn)速度,還能大大降低數(shù)據(jù)庫(kù)的 壓力。Redis提供了鍵過(guò)期功能,也提供了靈活的鍵淘汰策略,所以,現(xiàn)在Redis用在緩存的場(chǎng)合非常多。
緩存
緩存現(xiàn)在幾乎是所有中大型網(wǎng)站都在用的必殺技,合理的利用緩存不僅能夠提升網(wǎng)站訪問(wèn)速度,還能大大降低數(shù)據(jù)庫(kù)的 壓力。Redis提供了鍵過(guò)期功能,也提供了靈活的鍵淘汰策略,所以,現(xiàn)在Redis用在緩存的場(chǎng)合非常多。
分布式會(huì)話
集群模式下,在應(yīng)用不多的情況下一般使用容器自帶的session復(fù)制功能就能滿(mǎn)足,當(dāng)應(yīng)用增多相對(duì)復(fù)雜的系統(tǒng)中, 一般都會(huì)搭建以Redis等內(nèi)存數(shù)據(jù)庫(kù)為中心的session服務(wù),session不再由容器管理,而是由session服務(wù)及內(nèi)存 數(shù)據(jù)庫(kù)管理。
分布式鎖
在很多互聯(lián)網(wǎng)公司中都使用了分布式技術(shù),分布式技術(shù)帶來(lái)的技術(shù)挑戰(zhàn)是對(duì)同一個(gè)資源的并發(fā)訪問(wèn),如全局ID、減庫(kù) 存、秒殺等場(chǎng)景,并發(fā)量不大的場(chǎng)景可以使用數(shù)據(jù)庫(kù)的悲觀鎖、樂(lè)觀鎖來(lái)實(shí)現(xiàn),但在并發(fā)量高的場(chǎng)合中,利用數(shù)據(jù)庫(kù)鎖 來(lái)控制資源的并發(fā)訪問(wèn)是不太理想的,大大影響了數(shù)據(jù)庫(kù)的性能??梢岳肦edis的setnx功能來(lái)編寫(xiě)分布式的鎖,如果設(shè)置返回1說(shuō)明獲取鎖成功,否則獲取鎖失敗,實(shí)際應(yīng)用中要考慮的細(xì)節(jié)要更多。
社交網(wǎng)絡(luò)
點(diǎn)贊、踩、關(guān)注/被關(guān)注、共同好友等是社交網(wǎng)站的基本功能,社交網(wǎng)站的訪問(wèn)量通常來(lái)說(shuō)比較大,而且傳統(tǒng)的關(guān)系數(shù) 據(jù)庫(kù)類(lèi)型不適合存儲(chǔ)這種類(lèi)型的數(shù)據(jù),Redis提供的哈希、集合等數(shù)據(jù)結(jié)構(gòu)能很方便的的實(shí)現(xiàn)這些功能。
最新列表
Redis列表結(jié)構(gòu),LPUSH可以在列表頭部插入一個(gè)內(nèi)容ID作為關(guān)鍵字,LTRIM可用來(lái)限制列表的數(shù)量,這樣列表永遠(yuǎn)為N個(gè)ID,無(wú)需查詢(xún)最新的列表,直接根據(jù)ID去到對(duì)應(yīng)的內(nèi)容頁(yè)即可。
Redis各版本介紹
Redis 的版本分為 穩(wěn)定版(Stable) 和 開(kāi)發(fā)版(Unstable),命名規(guī)則為主版本號(hào).次版本號(hào).修訂號(hào)
(如 7.0.11)。
- 主版本號(hào):重大功能更新(如 5.x → 6.x)。
- 次版本號(hào):新增功能或非破壞性改進(jìn)(如 6.0 → 6.2)。
- 修訂號(hào): bug 修復(fù)或小更新(如 6.2.1 → 6.2.2)。
目前(2025 年)的長(zhǎng)期支持(LTS)版本為 6.x 和 7.x,舊版本逐步停止維護(hù)。
舊版本(3.x 及以下)
3.x版本已經(jīng)不推薦生產(chǎn)環(huán)境使用了
- 代表版本:3.2(2016 年發(fā)布)
- 特性:
- 支持簡(jiǎn)單集群(Redis Cluster),但存在節(jié)點(diǎn)故障轉(zhuǎn)移不夠靈活、數(shù)據(jù)遷移效率低等問(wèn)題。
- 數(shù)據(jù)結(jié)構(gòu)有限(僅支持字符串、哈希、列表、集合、有序集合)。
- 缺點(diǎn):
- 無(wú)分層存儲(chǔ)、多線程 I/O 等現(xiàn)代特性,性能瓶頸明顯。
- 社區(qū)維護(hù)停止,存在安全漏洞風(fēng)險(xiǎn)。
4.x 版本
2017 年發(fā)布,目前已停止維護(hù),不推薦生產(chǎn)環(huán)境使用
- 關(guān)鍵特性:
- 模塊系統(tǒng)(Modules):支持第三方擴(kuò)展(如 RedisJSON、RedisGraph 等),拓展功能生態(tài)。
- 混合持久化(AOF-RDB Hybrid):重啟時(shí)加載速度更快,減少數(shù)據(jù)丟失風(fēng)險(xiǎn)。
- 過(guò)期鍵異步刪除:避免大規(guī)模鍵過(guò)期時(shí)阻塞主線程。
- 缺點(diǎn):
- 未引入多線程,高并發(fā)場(chǎng)景下性能受限。
- 官方維護(hù)截止到 2021 年,安全性不足。
5.x版本
2019 年發(fā)布,維護(hù)至 2023 年,目前市場(chǎng)上很多公司正在使用該版本
- 關(guān)鍵特性:
- Redis Stream:正式引入流數(shù)據(jù)類(lèi)型,支持發(fā)布 - 訂閱、消息隊(duì)列、消費(fèi)者組等功能,替代傳統(tǒng)的 Pub/Sub。
- 異步復(fù)制改進(jìn):從節(jié)點(diǎn)支持部分重同步,減少全量復(fù)制開(kāi)銷(xiāo)。
- 內(nèi)置監(jiān)控指標(biāo):通過(guò) INFO 命令提供更詳細(xì)的運(yùn)行時(shí)統(tǒng)計(jì)信息。
- 缺點(diǎn):
- 單線程模型未改變,多核 CPU 利用率低。
- 已停止官方維護(hù),僅推薦測(cè)試環(huán)境使用。
6.x 版本(生產(chǎn)環(huán)境推薦?。。。?/h3>
LTS 版本,2021 年發(fā)布,維護(hù)至 2026 年。生產(chǎn)環(huán)境首選,尤其適合高并發(fā)、高吞吐量的業(yè)務(wù)(如緩存、實(shí)時(shí)分析)。
- 關(guān)鍵特性:
- 多線程 I/O:網(wǎng)絡(luò)請(qǐng)求處理支持多線程(非數(shù)據(jù)處理多線程),大幅提升高并發(fā)場(chǎng)景下的吞吐量。
- ACL 權(quán)限系統(tǒng):替代傳統(tǒng)密碼認(rèn)證,支持細(xì)粒度權(quán)限控制(如限制命令、鍵空間訪問(wèn))。
- 客戶(hù)端緩存(Client-side Caching):減少客戶(hù)端與服務(wù)端的交互次數(shù),降低延遲。
- RDB 加密:數(shù)據(jù)持久化時(shí)支持加密存儲(chǔ),保護(hù)靜態(tài)數(shù)據(jù)安全。
- 優(yōu)化點(diǎn):
- 改進(jìn)集群節(jié)點(diǎn)通信協(xié)議,提升 Redis Cluster 的穩(wěn)定性。
- 增強(qiáng)內(nèi)存管理,減少內(nèi)存碎片。
7.x 版本
LTS 版本,2022 年發(fā)布,維護(hù)至 2028 年,需要分布式事務(wù)、海量數(shù)據(jù)存儲(chǔ)(內(nèi)存成本敏感)、復(fù)雜數(shù)據(jù)處理的場(chǎng)景(如實(shí)時(shí)數(shù)據(jù)庫(kù)、物聯(lián)網(wǎng)數(shù)據(jù)存儲(chǔ))。
- 革命性特性:
- 全局事務(wù)(Global Transactions):支持跨分片的分布式事務(wù),保證多節(jié)點(diǎn)數(shù)據(jù)一致性。
- 分層存儲(chǔ)(Memory-Tiered Storage):熱數(shù)據(jù)存儲(chǔ)在內(nèi)存,冷數(shù)據(jù)自動(dòng)下沉到磁盤(pán),降低內(nèi)存成本。
- Server-side Scripting 增強(qiáng):Lua 腳本支持異步執(zhí)行,避免阻塞主線程。
- JSON 數(shù)據(jù)類(lèi)型升級(jí):原生支持 JSON 路徑查詢(xún)(JSONPath)和部分更新,性能提升 50%+。
- 其他改進(jìn):
- 新的 EXACT 模式用于模糊查詢(xún),提升鍵掃描效率。
- 支持 RESP3 協(xié)議,優(yōu)化客戶(hù)端與服務(wù)端交互格式。
安裝部署Redis6.2.x版本
Redis下載地址:https://download.redis.io/releases/
環(huán)境信息
IP | 系統(tǒng) | 規(guī)格 |
---|---|---|
10.37.97.56 | Ubuntu | 4c8g |
下載解壓
# 下載 [root@master ~]# wget https://download.redis.io/releases/redis-6.2.18.tar.gz # 解壓 [root@master ~]# tar -xvf redis-6.2.18.tar.gz
下載相關(guān)依賴(lài)并編譯
# 下載編譯工具 [root@master ~]# apt update && apt install -y gcc automake autoconf libtool make
下載工具說(shuō)明
- gcc:GNU 編譯器套件,用于編譯 C/C++ 代碼。
- automake:生成 Makefile.in 文件,輔助自動(dòng)化構(gòu)建。
- autoconf:生成 configure 腳本,檢測(cè)系統(tǒng)環(huán)境。
- libtool:管理庫(kù)文件的編譯和鏈接,實(shí)現(xiàn)跨平臺(tái)兼容。
- make:構(gòu)建工具,根據(jù) Makefile 編譯項(xiàng)目。
開(kāi)始安裝
[root@master ~]# cd redis-6.2.18/ [root@master ~/redis-6.2.18]# make ... #這里會(huì)刷出大量的編譯信息,稍等一會(huì)即可
配置環(huán)境變量
# 創(chuàng)建軟連接 [root@master ~]# ln -s /root/redis-6.2.18 /root/redis # 配置環(huán)境變量 [root@master ~]# echo "export PATH=$PATH:/root/redis/src" >> /etc/profile && source /etc/profile
創(chuàng)建數(shù)據(jù)目錄,將redis配置文件copy至該目錄下
# 創(chuàng)建數(shù)據(jù)目錄 [root@master ~]# mkdir -p /data00/data/redis [root@master ~]# cp /root/redis/redis.conf /data00/data/redis/ # 創(chuàng)建日志目錄 [root@master ~]# mkdir /var/log/redis
修改Redis配置文件
[root@master ~]# vim /data00/data/redis/redis.conf # 第75行,修改遠(yuǎn)程訪問(wèn)地址 75:bind 0.0.0.0 # 第98行,修改端口號(hào) 98:port 6379 # 第259行,守護(hù)進(jìn)程運(yùn)行,默認(rèn)位前臺(tái)運(yùn)行,需要修改為yes 259:daemonize yes # 第304行,指定redis的日志 304:logfile "/var/log/redis/redis.log" # 第329行,指定數(shù)據(jù)庫(kù)的數(shù)量,默認(rèn)是16個(gè) 329:databases 16 # 第433行,持久化的文件 433:dbfilename dump.rdb # 第456行,設(shè)置redis的數(shù)據(jù)目錄,和我們上面創(chuàng)建的路徑保持一致 456:dir /data00/data/redis/ # 第903行,設(shè)置密碼,建議不要使用弱密碼 903:requirepass 123456
啟動(dòng)Redis
# 啟動(dòng)redis,指定啟動(dòng)的配置文件 [root@master ~]# redis-server /data00/data/redis/redis.conf # 查看端口,檢查是否啟動(dòng)成功 [root@master ~]# ss -lntup | grep 6379 tcp LISTEN 0 511 0.0.0.0:6379 0.0.0.0:* users:(("redis-server",pid=1818909,fd=6))
連接redis
# 連接redis,-h指定IP,-p指定端口,-a指定密碼 [root@master ~]# redis-cli -h 127.0.0.1 -p 6379 -a '!Xinxin123' Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 127.0.0.1:6379> info # Server redis_version:6.2.18 ...# 會(huì)打印很多日志信息
到此這篇關(guān)于Redis指南及6.2.x版本安裝過(guò)程的文章就介紹到這了,更多相關(guān)Redis6.2.x安裝內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Redis設(shè)置鍵的生存時(shí)間或過(guò)期時(shí)間的方法詳解
這篇文章主要介紹了Redis如何設(shè)置鍵的生存時(shí)間或過(guò)期時(shí)間,通過(guò)EXPIRE命令或者PEXIPIRE命令,客戶(hù)端可以以秒或者毫秒精度為數(shù)據(jù)庫(kù)中的某個(gè)鍵設(shè)置生存時(shí)間,文中有詳細(xì)的代碼供供大家參考,需要的朋友可以參考下2024-03-03關(guān)于Redis的讀寫(xiě)一致問(wèn)題
在項(xiàng)目使用Redis過(guò)程中,當(dāng)數(shù)據(jù)更新時(shí),我們要保證緩存和數(shù)據(jù)庫(kù)的一致性,否則會(huì)導(dǎo)致很多臟數(shù)據(jù)出現(xiàn),此時(shí)我們就要思考如何去進(jìn)行數(shù)據(jù)更新,本文就給大家講講關(guān)于redis的讀寫(xiě)一致問(wèn)題,需要的朋友可以參考下2023-08-08Redis動(dòng)態(tài)熱點(diǎn)數(shù)據(jù)緩存策略設(shè)計(jì)
本文主要介紹了Redis動(dòng)態(tài)熱點(diǎn)數(shù)據(jù)緩存策略設(shè)計(jì),包括熱點(diǎn)數(shù)據(jù)識(shí)別、動(dòng)態(tài)緩存、多級(jí)緩存、預(yù)加載機(jī)制、更新策略以及監(jiān)控告警等,具有一定的參考價(jià)值,感興趣的可以了解一下2025-01-01