1. 程式人生 > >關於win本地遠端連線不到redis問題

關於win本地遠端連線不到redis問題

首先,到redis.io官網找win版本的redis下載,官方沒有的,微軟在GitHub託管的那個~,點選redis-server.exe安裝服務端,如圖就成功了,不要關掉視窗,一般不會出錯

這裡寫程式碼片
然後安裝redis客戶端,開啟本地終端,輸入命令

redis-cli.exe -h 127.0.0.1 -p 6379

如果連線不上,重啟電腦或者換個終端用Xshell試試再或者用管理員身份開啟命令列終端,最後成功就能連上本地即成功,然後試試遠端連線。

如下圖,發現報了錯,把遠端伺服器的redis.conf檔案裡protected mode修改為no,就好了,其他在安裝的時候,還需要註釋掉bind127.0.0.1,這樣所有都能遠端連線這個redis不安全,可以設定一個密碼,這裡暫時沒有設定,密碼設定如下敘述。然後我們就可以ping通了,如下圖。

這裡寫圖片描述

redis配置密碼
1.通過配置檔案進行配置
yum方式安裝的redis配置檔案通常在/etc/redis.conf中,開啟配置檔案找到

#requirepass foobared 

去掉行前的註釋,並修改密碼為所需的密碼,儲存檔案

requirepass myRedis  

重啟redis

sudo service redis restart  

或者

sudo service redis stop  
sudo redis-server /etc/redis.conf

這個時候嘗試登入redis,發現可以登上,但是執行具體命令是提示操作不允許

redis-cli -h 127.0
.0.1 -p 6379 redis 127.0.0.1:6379> redis 127.0.0.1:6379> keys * (error) ERR operation not permitted redis 127.0.0.1:6379> select 1 (error) ERR operation not permitted redis 127.0.0.1:6379[1]>

嘗試用密碼登入並執行具體的命令看到可以成功執行

redis-cli -h 127.0.0.1 -p 6379 -a myRedis  
redis 127.0.0.1:6379> keys
* 1) "myset" 2) "mysortset" redis 127.0.0.1:6379> select 1 OK redis 127.0.0.1:6379[1]> config get requirepass 1) "requirepass" 2) "myRedis"

2.通過命令列進行配置

redis 127.0.0.1:6379[1]> config set requirepass my_redis  
OK  
redis 127.0.0.1:6379[1]> config get requirepass  
1) "requirepass"  
2) "my_redis" 

無需重啟redis
使用第一步中配置檔案中配置的老密碼登入redis,會發現原來的密碼已不可用,操作被拒絕

redis-cli -h 127.0.0.1 -p 6379 -a myRedis  
redis 127.0.0.1:6379> config get requirepass  
(error) ERR operation not permitted  

使用修改後的密碼登入redis,可以執行相應操作

redis-cli -h 127.0.0.1 -p 6379 -a my_redis  
redis 127.0.0.1:6379> config get requirepass  
1) "requirepass"  
2) "my_redis  

嘗試重啟一下redis,用新配置的密碼登入redis執行操作,發現新的密碼失效,redis重新使用了配置檔案中的密碼

sudo service redis restart  
Stopping redis-server:                                     [  OK  ]  
Starting redis-server:                                     [  OK  ]  
redis-cli -h 127.0.0.1 -p 6379 -a my_redis  
redis 127.0.0.1:6379> config get requirepass  
(error) ERR operation not permitted  
redis-cli -h 127.0.0.1 -p 6379 -a myRedis  
redis 127.0.0.1:6379> config get requirepass  
1) "requirepass"  
2) "myRedis"  

除了在登入時通過 -a 引數制定密碼外,還可以登入時不指定密碼,而在執行操作前進行認證。

redis-cli -h 127.0.0.1 -p 6379  
redis 127.0.0.1:6379> config get requirepass  
(error) ERR operation not permitted  
redis 127.0.0.1:6379> auth myRedis  
OK  
redis 127.0.0.1:6379> config get requirepass  
1) "requirepass"  
2) "myRedis"  

3.master配置了密碼,slave如何配置
若master配置了密碼則slave也要配置相應的密碼引數否則無法進行正常複製的。
slave中配置檔案內找到如下行,移除註釋,修改密碼即可

masterauth  mstpassword