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