第一種方式 (當前這種linux配置redis密碼的方法是一種臨時的,如果redis重啟之后密碼就會失效,)
(1)首先進入redis,如果沒有開啟redis則需要先開啟:
[root@iZ94jzcra1hZ bin]# redis-cli -p 6379
127.0.0.1:6379>
(2)查看當前redis有沒有設置密碼:
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) ""
(3)為以上顯示說明沒有密碼,那么現在來設置密碼:
127.0.0.1:6379> config set requirepass abcdefg
OK
127.0.0.1:6379>
(4)再次查看當前redis就提示需要密碼:
127.0.0.1:6379> config get requirepass
(error) NOAUTH Authentication required.
127.0.0.1:6379>
第二種方式 (永久方式)
- 需要永久配置密碼的話就去redis.conf的配置文件中找到requirepass這個參數,如下配置:
- 修改redis.conf配置文件
- masterauth passwd123 指定密碼passwd123
- requirepass passwd123 指定密碼passwd123
- 保存后重啟redis就可以了
masterauth passwd123
requirepass passwd123
1、是否只設置requirepass就可以?masterauth是否需要同步設置? 答:redis啟用密碼認證一定要requirepass和masterauth同時設置。 如果主節點設置了requirepass登錄驗證,在主從切換,slave在和master做數據同步的時候首先需要發送一個ping的消息給主節點判斷主節點是否存活,再監聽主節點的端口是否聯通,發送數據同步等都會用到master的登錄密碼,否則無法登錄,log會出現響應的報錯。
也就是說slave的masterauth和master的requirepass是對應的,所以建議redis啟用密碼時將各個節點的masterauth和requirepass設置為相同的密碼,降低運維成本。當然設置為不同也是可以的,注意slave節點masterauth和master節點requirepass的對應關系就行。
2、requreipass和master的作用? masterauth作用:主要是針對master對應的slave節點設置的,在slave節點數據同步的時候用到。 requirepass作用:對登錄權限做限制,redis每個節點的requirepass可以是獨立、不同的。
連接redis
1.redis-cli連接redis
[root@iZ2ze3zda3caeyx6pn7c5zZ bin]# redis-cli
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123 //指定密碼
OK
127.0.0.1:6379> keys *
1) "a"
2) "cit"
3) "clist"
4) "1"
127.0.0.1:6379>
2.Jedis連接redis
java 代碼方式
//連接redis服務器,192.168.0.100:6379
jedis = new Jedis("ip", 6379);
//權限認證
jedis.auth("password");
配置文件方式
<bean id=”jedisConnectionFactory”
class=”org.springframework.data.redis.connection.jedis.JedisConnectionFactory”>
<property name=”hostName” value=”${redis.host}” />
<property name=”port” value=”${redis.port}” />
<property name=”password” value=”${redis.pass}” />
</bean>
redis的其他命令。
如果需要關閉redis:
[root@iZ94jzcra1hZ bin]# pkill redis
如果需要開啟redis:
[root@iZ94jzcra1hZ bin]# redis-server &
加&符號的作用是為了讓此進程轉換為后台進程,不占用shell的服務。
參考文獻:https://www.cnblogs.com/756623607-zhang/p/6859540.html