以前用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中,有一句:
去掉注釋,把foobared改成自己的認證密碼即可。
這樣連接的時候, redis-cli -h x.x..x.x -a passwd 即可,加上 -a 參數認證
如果主機配置了認證機制,在從機的 配置上,也加上認證密碼即可。修改從機的配置redis.conf
去掉注釋,修改成主機的認證密碼即可
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 閱讀(320)
評論(0) 編輯 收藏 所屬分類:
linux/unix