1. 程式人生 > >阿里雲Ubuntu16.04 修改bind配置後重啟動redis報錯

阿里雲Ubuntu16.04 修改bind配置後重啟動redis報錯

目的:需設定執行遠端連線redis

操作:修改配置檔案/etc/redis/redis.conf  的bind ,值改為阿里雲的公網ip
重啟:修改後重啟redis
報錯:重啟失敗報錯  Job for redis-server.service failed because a configured resource limit was exceeded. See "systemctl status redis-server.service" and "journalctl -xe" for details.

[email protected]:/etc/redis# vi redis.conf 
[email protected]
:/etc/redis# service redis-server restart Job for redis-server.service failed because a configured resource limit was exceeded. See "systemctl status redis-server.service" and "journalctl -xe" for details. [email protected]:/etc/redis# systemctl status redis-server.service ● redis-server.service - Advanced key-value store    Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)    Active: inactive (dead) (Result: resources) since Wed 2018-07-04 11:20:18 CST; 1min 56s ago      Docs: http://redis.io/documentation,            man:redis-server(1)   Process: 1925 ExecStopPost=/bin/run-parts --verbose /etc/redis/redis-server.post-down.d (code=exited, status=0/SUCCESS)   Process: 1919 ExecStop=/bin/kill -s TERM $MAINPID (code=exited, status=0/SUCCESS)   Process: 1914 ExecStop=/bin/run-parts --verbose /etc/redis/redis-server.pre-down.d (code=exited, status=0/SUCCESS)   Process: 1909 ExecStartPost=/bin/run-parts --verbose /etc/redis/redis-server.post-up.d (code=exited, status=0/SUCCESS)   Process: 1905 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)   Process: 1900 ExecStartPre=/bin/run-parts --verbose /etc/redis/redis-server.pre-up.d (code=exited, status=0/SUCCESS)  Main PID: 1721 (code=exited, status=0/SUCCESS) Jul 04 11:20:18 iZwz993neupeidg9ww5cnuZ systemd[1]: redis-server.service: Service hold-off time over, scheduling restart. Jul 04 11:20:18 iZwz993neupeidg9ww5cnuZ systemd[1]: Stopped Advanced key-value store. Jul 04 11:20:18 iZwz993neupeidg9ww5cnuZ systemd[1]: redis-server.service: Start request repeated too quickly. Jul 04 11:20:18 iZwz993neupeidg9ww5cnuZ systemd[1]: Failed to start Advanced key-value store.

原因:bind值配置為阿里雲的外網ip地址所致,阿里雲的公網地址是通過對映得到

[email protected]:/etc/redis# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:16:3e:06:cb:c7  
          inet addr:172.18.67.XXX  Bcast:172.18.XXX.255  Mask:255.255.240.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6651 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5217 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:636033 (636.0 KB)  TX bytes:770892 (770.8 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:143 errors:0 dropped:0 overruns:0 frame:0
          TX packets:143 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:12154 (12.1 KB)  TX bytes:12154 (12.1 KB)

[email protected]
:/etc/redis#
解決:方案1 註釋掉bind (存在風險,最好把)

          方案2 把bind值改為 阿里雲伺服器內網ip

重啟:正常

[email protected]:/etc/redis# service redis-server restart
[email protected]:~# ps -ef |grep redis
redis     2153     1  0 11:56 ?        00:00:03 /usr/bin/redis-server 172.xx.xx.xx:6379
root      2193  1058  0 13:20 pts/1    00:00:00 grep --color=auto redis

redis-cli連線

[email protected]:/etc/redis# redis-cli -h 172.xx.XX.XX -a XXXredis
172.18.67.246:6379> get key1
"helloredis"

建議:任意主機都可以遠端redis ,出於安全性考慮 開啟requirepass <password>
etc/redis/redis.conf