您好,登錄后才能下訂單哦!
本篇內容主要講解“Linux中安裝redis的方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Linux中安裝redis的方法”吧!
connect('192.168.1.4', 6379);
PHP 代碼如下:
$redis->set('tag', 'hello'); echo 'name:', $redis->get('tag'); ?>
執行以上代碼時,報錯如下:
Fatal error: Uncaught exception ‘RedisException’ with message ‘Redis server went away’ in xxxx RedisException: Redis server went away in xxxxxx
解錯誤分析及解決辦法
錯誤的原因很簡單,就是沒有連接上 redis 服務,由于 redis 采用的安全策略,默認會只準許本地訪問。需要通過簡單配置,完成允許外網訪問。
修改 redis 的配置文件,將所有 bind 信息全部屏蔽。
# bind 192.168.1.100 10.0.0.1 # bind 192.168.1.8 # bind 127.0.0.1
修改完成后,需要重新啟動 redis 服務。
修改 Linux 的防火墻(iptables),開啟你的 redis 服務端口,默認是 6379。
-A INPUT -m state –state NEW -m tcp -p tcp –dport 6379 -j ACCEPT …… -A INPUT -j REJECT –reject-with icmp-host-prohibited
請注意,一定要將 redis 的防火墻配置放在 REJECT 的前面。然后執行 service iptables restart。
至此,訪問剛剛上面的代碼,就能夠鏈接到 redis 服務,并且能夠正確顯示了。
關于bind
翻看網上的文章,此處多翻譯為"指定 redis 只接收來自于該 IP 地址的請求,如果不進行設置,那么將處理所有請求,在生產環境中最好設置該項"。這種解釋會 totally 搞糊涂初學者,甚至是錯誤的。該處的英文原文為:
# If you want you can bind a single interface, if the bind option is not # specified all the interfaces will listen for incoming connections. # bind 127.0.0.1
該處說明 bind 的是interface,也就是說是網絡接口。服務器可以有一個網絡接口(通俗的說網卡),或者多個。打個比方說機器上有兩個網卡,分別為 192.168.205.5 和 192.168.205.6,如果 bind 192.168.205.5,那么只有該網卡地址接受外部請求,如果不綁定,則兩個網卡口都接受請求。
OK,不知道講清楚沒有,在舉一個例子。在我上面的實驗過程中,我是將bind項注釋掉了,實際上我還有一種解決方案。由于我redis服務器的地址是 192.168.1.4 。如果我不注釋bind項,還有什么辦法呢?我可以做如下配置:
# bind 192.168.1.4
這里很多人會誤以為綁定的ip應該是請求來源的ip。其實不然,這里應該綁定的是你redis服務器本身接受請求的ip。
到此,相信大家對“Linux中安裝redis的方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。