隨筆-314  評論-209  文章-0  trackbacks-0

           以前用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

           

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

          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          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即可

          我們在從機上配置這句話  

           

          1
          slaveof 192.168.211.129  6379

           

            

           

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

          2 連接認證

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

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

          1
          # requirepass foobared

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

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

           

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

          1
          #masterauth passwd

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

           

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

          1
          2
          3
          4
          5
          6
          7
          8
          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

           加了認證之后的連接

          1
          2
          3
          4
          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連接腳本

           

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

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

          posted on 2017-05-10 10:49 xzc 閱讀(322) 評論(0)  編輯  收藏 所屬分類: linux/unix
          主站蜘蛛池模板: 东宁县| 晋中市| 海宁市| 区。| 丹寨县| 商丘市| 杭锦旗| 张家界市| 灵武市| 七台河市| 宣恩县| 永善县| 综艺| 静宁县| 中卫市| 乐东| 板桥市| 内丘县| 三原县| 昌宁县| 安丘市| 太仓市| 苍南县| 林口县| 大厂| 扎囊县| 马鞍山市| 肇东市| 湘乡市| 习水县| 景宁| 沁水县| 台北县| 韶山市| 石嘴山市| 潼南县| 和硕县| 湖口县| 凤凰县| 油尖旺区| 湘乡市|