1、前言 從接觸Redis也有兩年,平時就使用它來做緩存層,它給我的印象就是很強大,內置的數據結構很齊全,加上Redis5.0的到來,新增了很多特色功能。而Redis5.0最大的新特性就是多出了一個數據結構Stream,它是一個新的強大的支持多播的可持久化的消息隊列,可以去瞭解學習一下喲。言歸正傳, ...
1、前言
從接觸Redis也有兩年,平時就使用它來做緩存層,它給我的印象就是很強大,內置的數據結構很齊全,加上Redis5.0的到來,新增了很多特色功能。而Redis5.0最大的新特性就是多出了一個數據結構Stream,它是一個新的強大的支持多播的可持久化的消息隊列,可以去瞭解學習一下喲。言歸正傳,之所以寫下這篇文章是因為公司裡面的電腦一直都有裝Redis可視化工具,用起來很方便,感覺很有必要在家裡自己的電腦裝上一個,在安裝使用的過程中也出現之前遇到的一些小問題,因此寫下這篇博客記錄一下。
2、軟體安裝
軟體版本:
1、CentOS 7
2、Redis3.2
3、redis-desktop-manager-0.8.8.384
百度雲(可視化工具):https://pan.baidu.com/s/1a2UV9mHikGkGFTF6BFoqdg 密碼:ahfw
官網:https://redisdesktop.com/download
2.1、安裝Redis
CentOS 7直接yum安裝
yum install redis // 此方式直接安裝不是最新的版本呢
安裝最新的版本需要安裝Remi的軟體源:
yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm yum --enablerepo=remi install redis
安裝完畢後啟動Redis測試一下是否安裝成功:
1、啟動
service redis start 或者 systemctl start redis
2、檢查是否啟動
ps -A|grep redis
3、查看安裝時創建的文件
rpm -ql redis
4、查看redis版本
redis-cli --version
5、設置開機自啟
chkconfig redis on
或者
systemctl enable redis.service
看到如下則表示啟動成功
連接Redis:
redis-cli
2.2、安裝redis-desktop-manager
Windows下直接安裝即可
可參考官網
3、測試連接並拋出問題
3.1、測試連接
直接鏈接可能會出現下麵問題:
3.2、拋出問題
1、Redis安裝後預設只能在localhost訪問,若在進行遠程訪問可能會被限制,不能連接
2、在Linux主機裡面,一般都打開防火牆,因此我們通過Reids的預設埠6379進行訪問,可能被限制
3、在上面例子中,我們直接使用redis-cli直接連接就可以訪問了。那如果放開許可權允許遠程登錄,沒有驗證機制將會導致安全問題
4、假設開放遠程連接許可權,並設置了驗證機制,那麼Redis的主從複製又需要如何處理呢
4、解決問題
4.1、問題1
我們可以通過修改Redis的配置文件即可解決
a、註釋掉bind 127.0.0.1允許所有的ip訪問redis
b、將修改為:protected-mode no (Redis3.2新增的)
whereis redis // 查找配置文件路徑 vi /etc/redis.conf systemctl restart redis // 修改好配置文件後保存並重啟
解決完這個問題後,即表明Redis軟體本身允許遠程連接了,但是我們還需要解決防火牆的問題才可以進行遠程連接。
4.2、問題2
CentsOS7防火牆改成firewall,不再是之前的iptables,因此開放埠的方式有點區別。
開放埠如下: firewall-cmd --zone=public --add-port=6379/tcp --permanent --zone //作用域 --add-port=6379/tcp //添加埠,格式為:埠/通訊協議 --permanent //永久生效,沒有此參數重啟後失效 重啟防火牆: systemctl stop firewalld.service systemctl start firewalld.service systemctl restart firewalld.service
測試連接:
連接成功
4.2、問題3
設置密碼的驗證機制有兩種方式,包括配置文件修改(永久)和命令行修改(臨時,重啟服務後無效)
a、配置文件修改
將去掉#requirepass foobared前面的註釋,並更改為自己的密碼 requirepass 密碼,最後重啟Redis
測試:
從下麵的命令行可以看到,不輸入密碼,則獲取不到數據,即設置密碼驗證機製成功
圖形化工具同理:
b、命令行修改
config get requirepass // 獲取校驗密碼 config set requirepass mypassword2 //設置密碼
4.4、問題4
若master設置了密碼則slave也要設置相應的密碼參數否則無法進行正常複製的。
slave中配置文件內找到如下行,移除註釋,修改密碼即可。
#masterauth mstpassword
(以上是自己的一些見解,若有不足或者錯誤的地方請各位指出)
作者:那一葉隨風 http://www.cnblogs.com/phpstudy2015-6/
原文地址: https://www.cnblogs.com/phpstudy2015-6/p/9536831.html
聲明:本博客文章為原創,只代表本人在工作學習中某一時間內總結的觀點或結論。轉載時請在文章頁面明顯位置給出原文鏈接