優質博文:IT-BLOG-CN
一、準備工作
配置gcc
:安裝Redis
前需要配置gcc
:
yum install gcc
如果配置gcc
出現依賴包問題,在安裝時提示需要的依賴包版本和本地版本不一致,本地版本過高,出現如下問題:
[root@localhost ~] yum install gcc
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* epel: mirrors.bfsu.edu.cn* extras: mirros.aliyun.com* updates: mirros.aliyun.comNo package gcc available.Error: Nothing to do
使用--skip--broken
命令嘗試繞過依賴包時,直接把gcc
安裝包也繞過了
卸載依賴包重裝版本的方法過于繁瑣,可能扯出來一堆版本問題。這種問題原因是之前配置yum
源時配置的阿里源所以下載的大多數依賴包版本都比較高,在安裝很多較低版本軟件時都會遇到這個問題。
所以,如果是因為配置yum
源問題,這里建議直接將yum
源更換為Centos
官方源。這里我的Centos
版本是7.9
到官方找了鏡像地址為:http://mirror.centos.org/centos-7/7.9.2009/os/x86_64/Packages/centos-release-7-9.2009.0.el7.centos.x86_64.rpm
操作步驟:
1、進入repo
目錄
cd /etc/yum.repos.d/
2、備份系統原來的repo
文件
mv CentOS-Base.repo CentOS-Base.repo.backup
3、用wget
下載repo
文件
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
4、替換系統原理的repo
文件
mv CentOS6-Base-163.repo CentOS-Base.repo
5、清理緩存
yum clean all
6、緩存文件
yum makecache
7、重新更新yum
源
yum update -y
二、Redis 安裝包
Redis
官網鏈接
獲取redis
資源:或者手動下載后進行上傳即可。
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
Redis 6.2.11
官網下載鏈接
解壓redis
安裝包到/usr/local
路徑下:
tar -zxvf redis-5.0.7.tar.gz -C /usr/local
解壓成功后將文件夾名修改為redis
mv redis-5.0.7 redis
三、安裝 Redis
編譯: 進入到/usr/local/redis
目錄,輸入命令make
執行編譯命令,接下來控制臺會輸出各種編譯過程中輸出的內容。
cd redis-5.0.7
make
安裝: 輸入以下命令
make install PREFIX=/usr/local/redis
這里多了一個關鍵字PREFIX=
這個關鍵字的作用是編譯的時候用于指定程序存放的路徑。比如我們現在就是指定了redis
必須存放在/usr/local/redis
目錄。假設不添加該關鍵字Linux
會將可執行文件存放在/usr/local/bin
目錄,庫文件會存放在/usr/local/lib
目錄。配置文件會存放在/usr/local/etc
目錄。其他的資源文件會存放在usr/local/share
目錄。這里指定號目錄也方便后續的卸載,后續直接rm -rf /usr/local/redis
即可刪除redis
。
啟動Redis: 進入redis
安裝目錄,執行下面命令啟動redis
服務
./bin/redis-server redis.conf
四、配置 Redis服務
【1】如上啟動redis
不能退出控制臺,如果退出控制臺redis
服務也會停止。如果想要讓redis
以后臺的方式運行,需要修改redis
的配置文件:redis.conf
。將該配置文件中的daemonize no
改為 daemonize yes
即可:
daemonize yes
修改完配置文件后,重新啟動一下redis
服務
./bin/redis-server redis.conf
【2】查看redis
服務器運行情況:端口號6379
netstat -tunlp | grep redis
【3】如果需要在其他主機連接redis
,記得要修改redis.conf
配置文件,增加一行bind * -::*
,即配置了允許所有主機連接。
修改完后記得重啟redis
服務使配置文件生效。
【4】進入redis
客戶端模式:
./bin/redis-cli
關閉redis
客戶端模式
shutdown
【5】通過CONFIG GET *
的方式讀取所有配置項。這里列舉下比較重要的配置項
配置項名稱 | 配置項值范圍 | 說明 |
---|---|---|
daemonize | yes、no | yes 表示啟用守護進程,默認是no 即不以守護進程方式運行。其中Windows 系統下不支持啟用守護進程方式運行 |
port | 指定Redis 監聽端口,默認端口為6379 | |
bind | 綁定的主機地址,如果需要設置遠程訪問則直接將這個屬性備注下或者改為bind * 即可,這個屬性和下面的protected-mode控制了是否可以遠程訪問 。 | |
protected-mode | yes 、no | 保護模式,該模式控制外部網是否可以連接redis 服務,默認是yes ,所以默認我們外網是無法訪問的,如需外網連接rendis 服務則需要將此屬性改為no 。 |
timeout | 300 | 當客戶端閑置多長時間后關閉連接,如果指定為0 ,表示關閉該功能 |
loglevel | debug、verbose、notice、warning | 日志級別,默認為notice |
databases | 16 | 設置數據庫的數量,默認的數據庫是0 。整個通過客戶端工具可以看得到 |
rdbcompression | yes、no | 指定存儲至本地數據庫時是否壓縮數據,默認為yes ,Redis 采用LZF 壓縮,如果為了節省CPU 時間,可以關閉該選項,但會導致數據庫文件變的巨大。 |
dbfilename | dump.rdb | 指定本地數據庫文件名,默認值為dump.rdb |
dir | 指定本地數據庫存放目錄 | |
requirepass | 設置 Redis 連接密碼,如果配置了連接密碼,客戶端在連接Redis 時需要通過AUTH <password> 命令提供密碼,默認關閉 | |
maxclients | 0 | 設置同一時間最大客戶端連接數,默認無限制,Redis 可以同時打開的客戶端連接數為Redis 進程可以打開的最大文件描述符數,如果設置maxclients 0 ,表示不作限制。當客戶端連接數到達限制時,Redis 會關閉新的連接并向客戶端返回max number of clients reached 錯誤信息。 |
maxmemory | XXX | 指定Redis 最大內存限制,Redis 在啟動時會把數據加載到內存中,達到最大內存后,Redis 會先嘗試清除已到期或即將到期的Key ,當此方法處理 后,仍然到達最大內存設置,將無法再進行寫入操作,但仍然可以進行讀取操作。Redis 新的vm 機制,會把 Key 存放內存,Value 會存放在swap 區。配置項值范圍列里XXX 為數值。 |
【6】將redis
加入到開機啟動
vi /etc/rc.local //在里面添加內容:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf (意思就是開機調用這段開啟redis的命令)
【7】將redis-cli
,redis-server
拷貝到bin
下,讓redis-cli
指令可以在任意目錄下直接使用
cp /usr/local/redis/bin/redis-server /usr/local/bin/
cp /usr/local/redis/bin/redis-cli /usr/local/bin/
【8】設置redis
密碼
a.運行命令:redis-cli
b.查看現有的redis密碼(可選操作,可以沒有)運行命令:config get requirepass 如果沒有設置過密碼的話運行結果會如下圖所示
c.設置redis密碼運行命令:config set requirepass ****(****為你要設置的密碼),設置成功的話會返回‘OK’字樣
d.測試連接重啟redis服務//(redis-cli -h 127.0.0.1 -p 6379 -a ****(****為你設置的密碼))輸入 redis-cli 進入命令模式,使用 auth '*****' (****為你設置的密碼)登陸
【9】讓外網能夠訪問redis
a.配置防火墻: **firewall-cmd --zone=public --add-port=6379/tcp --permanent**(開放**6379**端口)**systemctl restart firewalld**(重啟防火墻以使配置即時生效)查看系統所有開放的端口:firewall-cmd --zone=public --list-portsb.此時 雖然防火墻開放了6379端口,但是外網還是無法訪問的,因為redis監聽的是127.0.0.1:6379,并不監聽外網的請求。(一)把文件夾目錄里的redis.conf配置文件里的bind 127.0.0.1前面加#注釋掉(二)命令:redis-cli連接到redis后,通過 config get daemonize和config get protected-mode 是不是都為no,如果不是,就用config set 配置名 屬性 改為no。
【10】Linux
系統下設置redis
的密碼:
1、進入redis
操作的命令行:
redis-cli
2、查看現有的redis
密碼(可選操作,可以沒有)
config get requirepass
3、設置redis
密碼
config set requirepass ****(****為你要設置的密碼),設置成功的話會返回‘OK’字樣
4、重啟redis
服務:ctrl+C
退出當前的命令行模式后運行命令:
redis-cli -h 127.0.0.1 -p 6379 -a ****(****為你心設置的密碼)