redis主從 以及認證配置


       以前用redis用的很多,各種數據類型用的飛起,算是用得很溜了。不過那都是封裝好的方法,自己直接調用。以前的公司比較規范,開發只是開發,很少去做跟運維相關的事情。 

           換了一份工作,不過這邊項目剛開始起步,各種東西還不是很全,需要從頭做起。運維什么的都是自己來。這下要考慮的東西就多了。比如說redis主從同步配置,redis認證等等。一路摸索過來,踩了各種坑。這篇文章主要記錄redis主從配置,認證機制,以及php操作redis的幾個腳本。

 

1 主從同步

個人認為,redis比mysql簡單多了。redis的主從配置真的很簡單,配置一句slaveof即可。唯一的坑就在於配置之前,確保主從服務器之間的聯通,主從服務器之間redis服務器的聯通。ping主從,redis-cli -h 連接測試。如果有不通的地方,配置一下conf文件即可。redis.conf文件也是相當的容易理解的

下面簡單的以一主一從進行講解主從配置。

主 192.168.211.129   從 192.168.211.130

 

首先確保 主能連自己,主機能連到從機

root@ubuntu:~/ceshi# ping 192.168.211.130
PING 192.168.211.130 (192.168.211.130) 56(84) bytes of data.
64 bytes from 192.168.211.130: icmp_req=1 ttl=64 time=1.87 ms
64 bytes from 192.168.211.130: icmp_req=2 ttl=64 time=0.334 ms
64 bytes from 192.168.211.130: icmp_req=3 ttl=64 time=0.982 ms
^C
--- 192.168.211.130 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.334/1.062/1.872/0.631 ms
root@ubuntu:~/ceshi# redis-cli
redis 127.0.0.1:6379> 
root@ubuntu:~/ceshi# redis-cli -h 192.168.211.130
redis 192.168.211.130:6379> 

 

  

 

  也要確保從機能連到主機

一半自己連自己是沒有問題的,但是自己一半不允許其他機器連接。

修改redis.conf 的 bind_ip.一般注釋掉

#bind  127.0.0.1

這樣其他機器也能通過ip+端口訪問了

 

其實配置主從同步真的很簡單,redis.conf文件講解的很清楚,slaveof master即可

我們在從機上配置這句話  

 

slaveof 192.168.211.129  6379

 

  

 

  這樣在主機上插入數據,從機上也會有數據。

2 連接認證

        在redis.conf中,有一個bind項,默認為 127.0.0.1,如果不注釋掉這句話,只允許本機連接。注釋掉之后,任何機器 通過ip+端口就能連接。這存在安全問題,在這里加上驗證機制即可。

        redis的驗證機制也是相當的簡單。在redis.conf中,有一句:

# requirepass foobared

  去掉注釋,把foobared改成自己的認證密碼即可。

這樣連接的時候, redis-cli  -h  x.x..x.x  -a passwd 即可,加上 -a 參數認證

 

如果主機配置了認證機制,在從機的 配置上,也加上認證密碼即可。修改從機的配置redis.conf

#masterauth passwd

  去掉注釋,修改成主機的認證密碼即可

 

3 常見的linux下操作 (修改redis.conf之后重啟)

root@ubuntu:~# ps -ef|grep redis
root      1536     1  0 Jun16 ?        00:00:03 /usr/bin/redis-server /etc/redis/redis.conf
root      1724  1623  0 00:28 pts/0    00:00:00 grep --color=auto redis
root@ubuntu:~# kill 1536
root@ubuntu:~# /usr/bin/redis-server /etc/redis/redis.conf
root@ubuntu:~# ps -ef|grep redis
root      1726     1  1 00:29 ?        00:00:00 /usr/bin/redis-server /etc/redis/redis.conf
root      1728  1623  0 00:29 pts/0    00:00:00 grep --color=auto redis

 加了認證之后的連接

root@ubuntu:~# redis-cli -h 192.168.211.130 -p 6379 -a foobared 
redis 192.168.211.130:6379> keys *
1) "a"
redis 192.168.211.130:6379> 

  

3 php操作redis連接腳本

 

        $redis = new Redis();
        $redis->connect(¥redisHost, $redisPort);
        $redis->auth('foobared');
        $id = $redis->rpop($this->mailList); //右邊彈出一個
        $redis->close();

  這只是一個示例。為了說明redis連接之后的認證方法auth如何使用

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM