redis在Linux系統(tǒng)下的環(huán)境配置和redis的全局命令大全
一.redix在Linux下的環(huán)境配置
1.基于Centos下的環(huán)境配置
1.使用yum安裝
1.如果你的Centos是Centos8的話,直接使用yum安裝即可
yum install redis
但如果你的Centos是Centos7的話,就需要安裝額外的軟件源了,我們這邊就需要先安裝 scl 軟件源
yum install centos-release-scl-rh yum install rh-redis5-redis
注意這些操作都是要在root身份下進(jìn)行的
2.構(gòu)建符號鏈接
默認(rèn)情況下,Redis 可能會被安裝在一個比較深的目錄中,例如 /opt/rh/rhredis5/root/usr/bin/
。這樣的路徑不僅難記,而且在日常使用或編寫腳本時輸入起來也很不方便。
構(gòu)建符號鏈接可以創(chuàng)建一個簡短且易于記憶的訪問路徑,通常指向 Redis 的二進(jìn)制文件(如 redis-server、redis-cli 等)。這樣,你就可以在系統(tǒng)的任何地方輕松地調(diào)用這些工具,而無需指定完整的路徑。例如,你可以將 redis-server 鏈接到 /usr/local/bin/redis-server,這是一個通常在系統(tǒng) $PATH 環(huán)境變量中的目錄,使得系統(tǒng)可以在任何路徑下識別并執(zhí)行該命令
1.首先進(jìn)入 /usr/bin目錄
cd /usr/bin
2. 構(gòu)建符號鏈接
ln -s /opt/rh/rh-redis5/root/usr/bin/redis-server ./redis-server ln -s /opt/rh/rh-redis5/root/usr/bin/redis-sentinel ./redis-sentinel ln -s /opt/rh/rh-redis5/root/usr/bin/redis-cli ./redis-cli
構(gòu)建完成后可以查看是否構(gòu)建成功
ll ./redis-server ll ./redis-cli ll ./redis-sentinel
如果出現(xiàn)上圖這個樣子就說明構(gòu)建成功
3.針對配置?件設(shè)置符號鏈接
cd /etc/ ln -s /etc/opt/rh/rh-redis5/ ./redis
同理也可以查看是否構(gòu)建成功
ll ./redis
4.修改配置文件
由于redis默認(rèn)的配置文件,像只能在自己的主機(jī)上通信,保護(hù)模式不允許從任何主機(jī)訪問 Redis 等等方面的原因,就需要我們手動的去修改
1.打開配置文件
vim /etc/redis/redis.conf
2.設(shè)置 IP 地址
使得 Redis 監(jiān)聽所有可用的網(wǎng)絡(luò)接口
找到下圖的 bind
改成
bind 0.0.0.0
3.關(guān)閉保護(hù)模式
關(guān)閉保護(hù)模式允許從任何主機(jī)訪問 Redis
找到 protected-mode
修改成
protected-mode no
4.啟動守護(hù)進(jìn)程
使得 Redis 以后臺守護(hù)進(jìn)程的方式運(yùn)行。這對于生產(chǎn)環(huán)境是必要的,因?yàn)樗试S Redis 在用戶退出 SSH 會話或關(guān)閉終端后繼續(xù)運(yùn)行
找到daemonize
修改成
daemonize yes
5.設(shè)置工作目錄和日志目錄
先退出配置文件
創(chuàng)建工作目錄和日志目錄
mkdir -p /var/lib/redis mkdir -p /var/log/redis
再次進(jìn)入配置文件
找到 dir
修改成
dir /var/lib/redis
找到 logfile
修改成
logfile /var/log/redis/redis-server.log
后續(xù)如果你還需要修改那些命令可以自行去修改,這里就介紹一些目前學(xué)習(xí)要用到的
5.啟動 redis
1.啟動redis服務(wù)器
redis-server /etc/redis/redis.conf
2.打開redis的客服端
redis-cli
出現(xiàn)下圖就說明啟動成功了
你可以創(chuàng)建一些值看一下是否可以使用
set key 1 #創(chuàng)建鍵值對 get key #獲得key的Value值
6.停?redis服務(wù)器
這里博主就不建議停止redis服務(wù)器,以免再次使用redis時還得打開服務(wù)器
1.先查看到redis-server的pid(進(jìn)程ID)
ps aux | grep redis
2.關(guān)閉 redis服務(wù)器
kill 進(jìn)程ID
關(guān)閉后,執(zhí)行第五步即可.
2.基于Ubuntu下的環(huán)境配置
基于Ubuntu環(huán)境下其實(shí)步驟和基于Centos的步驟更簡單,因?yàn)樗恍枰獎?chuàng)建符號鏈接,其他的步驟都和Centos的步驟上的一樣,除了使用安裝的運(yùn)營商不同.可以參考Centos的步驟
1.安裝
apt install redis -y
不需要創(chuàng)建符號鏈接修改配置文件參考Centos的步驟,修改的內(nèi)容是一樣的沒有差別
二.redis的全局命令
我們都知道redis支持多種數(shù)據(jù)結(jié)構(gòu),并且redis 是以鍵值對的形式來組織數(shù)據(jù)的,通過網(wǎng)絡(luò)來傳輸數(shù)據(jù),可以看成是一個聯(lián)網(wǎng)的哈希表,其中 key 固定就是字符串的形式,Value 是可以以多種數(shù)據(jù)結(jié)構(gòu)的形式存在的
既然可以以這么多數(shù)據(jù)結(jié)構(gòu)來表示,就說明每個數(shù)據(jù)結(jié)構(gòu)都有不同的redis命令,這些命令,博主后續(xù)會為大家介紹,而全局命令就是無論 Value是以什么樣的數(shù)據(jù)結(jié)構(gòu)所表示都可以使用的命令,全局命令其實(shí)還挺多的,博主這里就介紹一些日常工作學(xué)習(xí)比較常用的命令,其他的命令大家需要用到的時候可以去翻閱redis的官方文檔來具體使用 Understand Redis data types | Docs
以上就是 Value目前可以以這些數(shù)據(jù)結(jié)構(gòu)的形式來表示
1.get 和 set
屬于Redis中最基礎(chǔ)且廣泛使用的命令,可以說只要你用redis就必須會到這兩個命令
1.set
set key value
把key 和 value 存儲到 redis 中,這個默認(rèn)是字符串的形式的,value 以其他數(shù)據(jù)結(jié)構(gòu)表示的有其他的更高效和精確的命令.
注意:redis是不區(qū)分大小寫的,并且這里你加不加單引號或者雙引號都可以.都是默認(rèn)你存儲的數(shù)據(jù)位字符串的形式
2.get
根據(jù) key 來返回 value的值
如果 key不存在
如果key不存在就返回 nil 和 Java 的 null 與c++的NULL 一個意思,表示鍵不存在.
2.keys
用來查詢當(dāng)前服務(wù)器符合給定模式的 key
語法為
keys patten
patten 主要是一些選項(xiàng),支持一些通配符
解釋之前我們先存儲幾個 key value 進(jìn)去好做實(shí)驗(yàn)
set hello 1 set hallo 2 set hllo 3 set heeello 4 set hhllo 5 set hbllo 6
1.? 匹配任意一個字符
keys h?llo
可以看到 ? 可以只能匹配任意一個字符,所以就列出以下這些符合條件的 key
2. * 匹配任意多個字符包括0個
keys h*llo
3.[a,b,c]只能匹配括號里面的字符
keys h[a,b,c]llo
4.[^e] 排除括號里的字符
keys h[^e]llo
5.[a-d]匹配字符a到字符d之間的字符,前閉后閉
keys h[a-d]llo
6.注意事項(xiàng)
性能影響:
KEYS pattern
命令會遍歷整個數(shù)據(jù)庫來查找匹配給定模式的所有鍵,其時間復(fù)雜度為 O(N),其中 N 是數(shù)據(jù)庫中的鍵的數(shù)量。這意味著,當(dāng)數(shù)據(jù)庫中包含大量鍵時,此命令可能會執(zhí)行很長時間,嚴(yán)重阻塞其他操作,影響Redis服務(wù)器的響應(yīng)速度和性能。生產(chǎn)環(huán)境風(fēng)險:由于
KEYS
命令可能引起服務(wù)器阻塞,因此強(qiáng)烈不建議在生產(chǎn)環(huán)境中使用。特別是在高負(fù)載或大數(shù)據(jù)量的場景下,使用KEYS
可能會導(dǎo)致嚴(yán)重的服務(wù)中斷或延遲問題。最主要是因?yàn)?redis引起服務(wù)器阻塞之后,那么大量的客服端請求就會訪問MySQL數(shù)據(jù)庫,導(dǎo)致數(shù)據(jù)庫掛了,這將引起很大的損失推薦在生產(chǎn)環(huán)境中使用
SCAN
命令作為KEYS
的替代品。SCAN cursor [MATCH pattern] [COUNT count]
命令提供了更安全的方式來迭代鍵,它不會阻塞服務(wù)器,而是逐步返回匹配的鍵。通過使用SCAN
,你可以控制每次迭代返回的鍵的數(shù)量,降低對服務(wù)器的影響。
4.無論是 KEYS
還是 SCAN
,返回的鍵都是無序的,不能保證按照任何特定順序排列。
5.謹(jǐn)慎使用模式匹配:在使用模式匹配時,應(yīng)盡量避免使用過于寬泛的模式,比如 "*"
,這可能 導(dǎo)致返回大量鍵,即使使用 SCAN
也會消耗較多資源
3.exists
檢查一個或多個key是否存在。返回存在的鍵的數(shù)量
語法
exists key ....
注意:這個操作的時間復(fù)雜度為 0(N) 這里N為要查詢的 Key的數(shù)量,這是官方文檔說明的,同時要注意能夠?qū)懚鄠€就寫多個,盡量不要一個一個的去查詢,因?yàn)閑xists 每次查詢都需要訪問到redis服務(wù)器,它們之間的通信是網(wǎng)絡(luò)通信,所以性能會降低,并且還會消耗更多的系統(tǒng)資源
4.del
刪除一個或多個鍵及其對應(yīng)的值
語法
del key...
注意:這個操作的時間復(fù)雜度為 0(N) 這里N為要刪除的 Key的數(shù)量,這是官方文檔說明的,同時要注意能夠?qū)懚鄠€就寫多個,盡量不要一個一個的去刪除,因?yàn)閐el 每次訪問都需要訪問到redis服務(wù)器,它們之間的通信是網(wǎng)絡(luò)通信,所以性能會降低,并且還會消耗更多的系統(tǒng)資源
5.expire
為鍵設(shè)置一個過期時間(單位為秒),超過此時間鍵將自動刪除。
語法
expire key seconds#單位為秒
1.應(yīng)用場景
像手機(jī)收到的驗(yàn)證碼,就是可以運(yùn)用這個命令,規(guī)定在多少秒之后,就不生效了,還有像那些購物網(wǎng)站的優(yōu)惠價也可以這樣設(shè)置,超過多少時間就失效了,等等總之這個命令還是比較常用實(shí)用的. 通過合理使用 EXPIRE
,開發(fā)者能夠設(shè)計出更加高效、自動化的數(shù)據(jù)管理策略,提升系統(tǒng)的靈活性和健壯性。
2.注意事項(xiàng)
該過期時間的時間單位為秒,如果你要想更精細(xì)的話,可以使用
pexpire key 毫秒
6. TTL
一般和expire搭配使用,查看 當(dāng)前 key 的過期時間還剩多少
語法
ttl key
注意:如果鍵不存在或沒有設(shè)置過期時間,返回 -1
或 -2
分別表示。
7.key的過期策略的實(shí)現(xiàn)(面試經(jīng)典問題)
在實(shí)際開發(fā)中 一個 redis 中可能同時存在很多很多 key,這些 key 中可能有很大一部分都有過期時間.此時,redis 服務(wù)器如何知道哪些key 已經(jīng)過期要被刪除, 哪些 key 還沒過期??
1.惰性刪除
假設(shè)這個 key 已經(jīng)到過期時間了,但是暫時還沒刪它,key 還存在.緊接著,后面又一次訪問,正好用到了這個 key,于是這次訪問就會讓 redis 服務(wù)器觸發(fā)刪除 key 的操作,同時再返回一個 nil,這種方式雖然降低了性能開銷,但可能造成過期鍵占用內(nèi)存較長時間,比較不一定會去訪問過期的鍵.
2.定期刪除
為了彌補(bǔ)惰性刪除可能帶來的內(nèi)存占用問題,Redis還會周期性地執(zhí)行一個稱為“過期鍵檢查”的操作。在這個操作中,Redis會遍歷數(shù)據(jù)庫中的部分鍵,檢查并刪除已過期的鍵。這個過程不是一次性檢查所有鍵,而是分批進(jìn)行,以避免對服務(wù)器造成太大壓力。定期刪除的頻率和每次檢查的鍵的數(shù)量可以通過配置參數(shù)調(diào)整,以達(dá)到內(nèi)存使用和性能之間的最佳平衡。
3.內(nèi)存淘汰機(jī)制
雖然有了上述兩種策略結(jié)合,整體的效果一般仍然可能會有很多過期的 key 被殘留了,沒有及時刪除掉,redis 為了對上述進(jìn)行補(bǔ)充,還提供了一系列的內(nèi)存淘汰策略.例如,如果數(shù)據(jù)訪問具有明顯的熱點(diǎn),使用LRU或LFU淘汰機(jī)制;如果數(shù)據(jù)大部分都設(shè)置了過期時間,使用volatile相關(guān)的策略可以更針對性地管理內(nèi)存。正確配置淘汰策略對保持Redis服務(wù)的穩(wěn)定性和性能至關(guān)重要。
8.type
返回key所存儲的value的類型。
redis的 value 是可以以多種數(shù)據(jù)結(jié)構(gòu)形式來表示的,每個數(shù)據(jù)結(jié)構(gòu)的 redis 命令 都會有所不同,所以我們知道相應(yīng)的 value 的數(shù)據(jù)類型是很重要的 特殊是當(dāng)數(shù)據(jù)量特別大的時候,知道value 的數(shù)據(jù)類型是個很重要的事
語法
type key
為了實(shí)驗(yàn)這個命令我們要設(shè)置不同類型value
set key1 1 #字符串 rpush key2 1 2 3 #列表 sadd key3 1 2 3 #集合 hset key4 field 1 #哈希表
type key1 type key2 type key3 type key4
9.info
提供關(guān)于Redis服務(wù)器的各種信息,包括服務(wù)器狀態(tài)、客戶端連接、內(nèi)存使用情況、持久化、復(fù)制等。
info + 選項(xiàng)
1.注意事項(xiàng)
性能影響:盡管
INFO
命令是非常有用的診斷工具,但它需要Redis服務(wù)器收集并返回大量信息,這可能會對服務(wù)器性能產(chǎn)生短暫影響,尤其是在高負(fù)載情況下。頻繁調(diào)用INFO
可能會增加服務(wù)器負(fù)擔(dān),尤其是在生產(chǎn)環(huán)境中。敏感信息泄露:
INFO
命令提供了詳細(xì)的服務(wù)器狀態(tài)信息,包括配置、統(tǒng)計、內(nèi)存使用情況等。在某些配置下,它還可能暴露密碼(如 replication password)、服務(wù)器地址等敏感信息。因此,在公開或不可信的環(huán)境中使用時要格外小心,考慮使用INFO
命令的子命令來限制輸出的信息范圍,如INFO replication
只查看復(fù)制相關(guān)信息。
命令變體:
- Redis 提供了
INFO
命令的幾個變體,如INFO memory
、INFO clients
等,它們分別提供特定領(lǐng)域的詳細(xì)信息。使用這些變體而不是全量的INFO
可以減少數(shù)據(jù)傳輸量,減輕服務(wù)器壓力。
- Redis 提供了
輸出格式:
INFO
命令的輸出默認(rèn)為文本格式,但可以通過在命令后加上json
參數(shù)(如INFO json
)來獲取JSON格式的輸出,便于程序解析和自動化處理。
安全模式:
- 在Redis 5.0及以后版本中,引入了
INFO
命令的安全模式。使用INFO
時加上--section
參數(shù)(例如INFO --section server
),可以限制輸出內(nèi)容,避免敏感信息泄露。
- 在Redis 5.0及以后版本中,引入了
日志和監(jiān)控:
- 定期使用
INFO
收集的統(tǒng)計數(shù)據(jù)對于性能監(jiān)控和故障排查非常重要。但應(yīng)該通過腳本或工具自動化這一過程,并合理安排執(zhí)行頻率,避免對生產(chǎn)環(huán)境造成不必要的干擾。
- 定期使用
總之,INFO
是一個強(qiáng)大的命令,使用時應(yīng)權(quán)衡獲取信息的需求與對系統(tǒng)性能的影響,特別是在生產(chǎn)環(huán)境中要謹(jǐn)慎處理,確保信息安全。
總結(jié)
以上就是一些常用的全局命令,還是那句話,博主只深入介紹幾個比較常用的全局命令,可能還有一些遺漏的命令,博主在后續(xù)的文章里也會繼續(xù)講解說明.如果遇到了不懂或者是需要用到其他的全局命令的時候,那就是去看官方文檔.文檔上的一定是正確的,并且是最新的.好了就介紹到這了,如果在配置環(huán)境上有什么不懂的可以私聊博主,或者加文末的微信,后續(xù)的內(nèi)容,博主也在持續(xù)更新中,如果感興趣的話可以關(guān)注一手,謝謝你的閱讀,祝你一天愉快.
到此這篇關(guān)于redis在Linux系統(tǒng)下的環(huán)境配置和redis的全局命令大全的文章就介紹到這了,更多相關(guān)Linux下redis環(huán)境配置和全局命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Redis數(shù)據(jù)導(dǎo)入導(dǎo)出以及數(shù)據(jù)遷移的4種方法詳解
這篇文章主要介紹了Redis數(shù)據(jù)導(dǎo)入導(dǎo)出以及數(shù)據(jù)遷移的4種方法詳解,需要的朋友可以參考下2020-02-02手把手教你使用redis實(shí)現(xiàn)排行榜功能
使用Redis中有序集合的特性來實(shí)現(xiàn)排行榜是又好又快的選擇,一般排行榜都是有實(shí)效性的,比如“用戶積分榜”,下面這篇文章主要給大家介紹了關(guān)于使用redis實(shí)現(xiàn)排行榜功能的相關(guān)資料,需要的朋友可以參考下2023-04-04redis發(fā)布和訂閱_動力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了redis發(fā)布和訂閱的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08Windows系統(tǒng)安裝redis數(shù)據(jù)庫
這篇文章介紹了Windows系統(tǒng)安裝redis數(shù)據(jù)庫的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03Redis集群服務(wù)器的實(shí)現(xiàn)(圖文步驟)
本文介紹了Redis集群服務(wù)器的優(yōu)勢,為讀者提供了全面的Redis集群服務(wù)器知識和使用技巧,具有一定的參考價值,感興趣的可以了解一下2023-09-09Redis實(shí)現(xiàn)會話管理和token認(rèn)證的示例代碼
會話管理和身份認(rèn)證是實(shí)現(xiàn)用戶登錄、權(quán)限管理等功能的基礎(chǔ),本文主就來介紹一下Redis實(shí)現(xiàn)會話管理和token認(rèn)證的示例代碼,具有一定的參考價值,感興趣的可以了解一下2025-04-04在Centos?8.0中安裝Redis服務(wù)器的教程詳解
由于考慮到linux服務(wù)器的性能,所以經(jīng)常需要把一些中間件安裝在linux服務(wù)上,今天通過本文給大家介紹下在Centos?8.0中安裝Redis服務(wù)器的詳細(xì)過程,感興趣的朋友一起看看吧2022-03-03