久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

redis中bind有什么用

150次閱讀
沒有評論

共計 2219 個字符,預計需要花費 6 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

這篇文章給大家分享的是有關 redis 中 bind 有什么用的內容。丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,一起跟隨丸趣 TV 小編過來看看吧。

我一直以為 redis 配置文件中的 bind 的作用是:限制 redis 服務器用來接收來自哪些服務器(IP 地址)的 redis 連接請求,只有在 bind 指定的 IP 地址的計算機才可以訪問這個 redis 服務器。

事實證明,上面的結論大錯特錯。

今天在搭建 Redis 服務集群的時候,發現自己一直以來對 Redis 中 bind 的理解的一個誤區。

例如:

bind 127.0.0.1       就是用來限制只有本機可以連接 redis 服務連接

bind 0.0.0.0         就是用來允許任意計算機都可以連接 redis 服務連接。

注意:以上的理解都是錯誤的。他們正好是特例,對我們產生了一種錯覺。

不信的的話你們可以試一試:(最好試一試)

bind 10.0.0.1(或者除了 127.0.0.1 和 0.0.0.0 之外的任何 IP 地址)

然后重啟 redis,就會發現啟動不起來。

redis 中 bind 有什么用

對于為什么啟動不起來,你們知道了 bind 的真正意思之后,就會明白啟動不起來的原因。

對于 Redis 中 bind 的正確的理解是:

bind:是綁定本機的 IP 地址,(準確的是:本機的網卡對應的 IP 地址,每一個網卡都有一個 IP 地址),而不是 redis 允許來自其他計算機的 IP 地址。

如果指定了 bind,則說明只允許來自指定網卡的 Redis 請求。如果沒有指定,就說明可以接受來自任意一個網卡的 Redis 請求。

舉個例子:如果 redis 服務器(本機)上有兩個網卡,每一個網卡對應一個 IP 地址,例如 IP1 和 IP2。(注意這個 IP1 和 IP2 都是本機的 IP 地址)。

我們的配置文件:bind IP1。  只有我們通過 IP1 來訪問 redis 服務器,才允許連接 Redis 服務器,如果我們通過 IP2 來訪問 Redis 服務器,就會連不上 Redis。

查看本地的網卡對應的 IP 地址:使用 ifconfig 命令。

redis 中 bind 有什么用

從上面看出我們有兩個網卡,也就是我們只能使用:127.0.0.1 和 172.18.235.206 最為 bind 的地址,不然 redis 啟動不起來。

這就說明了上面例子(bind 10.0.0.1)為什么啟動不起來,因為我們沒有對應的網卡 IP 地址。這就說明了 bind 并不是指定 redis 中可以接受來自哪些服務器請求的 IP 地址。

而是:bind 用于指定本機網卡對應的 IP 地址。

附注:

bind 127.0.0.1 的解釋:(為什么只有本機可以連接,而其他不可以連接)

我們從 ifconfig 可以看出:lo 網卡(對應 127.0.0.1IP 地址):是一個回環地址(Local Loopback),也就是只有本地才能訪問到這個回環地址,而其他的計算機也只能訪問他們自己的回環地址。

那么來自這個 lo 網卡的計算機只有本機,所以只有本機可以訪問,而其他計算機不能訪問。

bind 172.18.235.206 的話,只要通過這個網卡地址(172.18.235.206)來的 Redis 請求,都可以訪問 redis。我使用的阿里云的服務器。我在另一個服務器上去請求              redis-cli 阿里云公網 IP 地址         就會連接到 redis 服務器。

因為公網地址的請求:都是經過這個 eth0 的網卡地址(172.18.235.206),從而接收到這個 redis 請求。

當你們不使用那個回環地址,基本上外部的計算機都可以訪問本機的 Redis 服務器。

如果我們想限制只有指定的主機可以連接到 redis 中,我們只能通過防火墻來控制,而不能通過 redis 中的 bind 參數來限制。

使用阿里云的安全組,來限制指定的主機連接 6379 端口。

redis 中的【protected-mode】的理解:

redis 本身無法限制【只有指定主機】連接到 redis 中,就像我上面說的一樣,bind 指定只是用來設置接口地址(interfaces)。

1、如果你的 bind 設置為:bind 127.0.0.1,這是非常安全的,因為只有本臺主機可以連接到 redis,就算不設置密碼,也是安全的,除非有人登入到你的服務器上。

2、如果你的 bind 設置為:bind 0.0.0.0,表示所有主機都可以連接到 redis。(前提:你的服務器必須開放 redis 的端口)。這時設置密碼,就會多一層保護,只有知道密碼的才可以訪問。也就是任何知道密碼的主機都可以訪問到你的 redis。

protected-mode 是 redis 本身的一個安全層,這個安全層的作用:就是只有【本機】可以訪問 redis,其他任何都不可以訪問 redis。這個安全層開啟必須滿足三個條件,不然安全層處于關閉狀態:

(1)protected-mode yes(處于開啟)

(2)沒有 bind 指令。原文:The server is not binding explicitly to a set of addresses using the bind directive.

(3)沒有設置密碼。原文:No password is configured。

這時 redis 的保護機制就會開啟。開啟之后,只有本機才可以訪問 redis。如果上面三個條件任何一個不滿足,就不會開啟保護機制。

感謝各位的閱讀!關于“redis 中 bind 有什么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-04發表,共計2219字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 沧州市| 玉门市| 五华县| 崇信县| 九江市| 中方县| 永年县| 宽城| 古丈县| 昌乐县| 铁岭市| 台东县| 定兴县| 岳池县| 广州市| 延庆县| 新田县| 北京市| 庆云县| 姚安县| 开化县| 安仁县| 乌拉特后旗| 保靖县| 甘孜县| 东光县| 澜沧| 东丰县| 天门市| 那曲县| 景泰县| 正镶白旗| 沛县| 安国市| 永德县| 寿光市| 香港| 黔西| 施秉县| 定南县| 呼图壁县|