redis redis-trib.rb使用密碼管理集群

來源:本站原創 Linux 超過496 views圍觀 0條評論

注意事項:
1.如果是使用redis-trib.rb工具構建集群,集群構建完成前不要配置密碼,集群構建完畢再通過config set + config rewrite命令逐個機器設置密碼
2.如果對集群設置密碼,那么requirepass和masterauth都需要設置,否則發生主從切換時,就會遇到授權問題,可以模擬并觀察日志
3.各個節點的密碼都必須一致,否則Redirected就會失敗
[plain] view plain copy 在CODE上查看代碼片派生到我的代碼片
config set masterauth abc 
config set requirepass abc 
config rewrite 
設置密碼后,redis-trib.rb check 192.168.0.107:6379
設置密碼后,redis-trib.rb check 192.168.0.107:6379  報錯連接不上實例,解決方法:
vim /usr/lib/ruby/gems/1.8/gems/redis-3.3.0/lib/redis/client.rb
class Redis
  class Client
    DEFAULTS = {
      :url => lambda { ENV["REDIS_URL"] },
      :scheme => "redis",
      :host => "127.0.0.1",
      :port => 6379,
      :path => nil,
      :timeout => 5.0,
      :password => "gh*8pass",
      :db => 0,
      :driver => nil,
      :id => nil,
      :tcp_keepalive => 0,
      :reconnect_attempts => 1,
      :inherit_socket => false
    }
修改下默認密碼就可以了

1.密碼設置
方式一:修改所有Redis集群中的redis.conf文件加入:
masterauth passwd123
requirepass passwd123
說明:這種方式需要重新啟動各節點

方式二:進入各個實例進行設置:
./redis-cli -c -p 7000
config set masterauth passwd123
config set requirepass passwd123
config rewrite
之后分別使用./redis-cli -c -p 7001,./redis-cli -c -p 7002…..命令給各節點設置上密碼
注意:各個節點密碼都必須一致,否則Redirected就會失敗, 推薦這種方式,這種方式會把密碼寫入到redis.conf里面去,且不用重啟

2.設置密碼之后如果需要使用redis-trib.rb的各種命令
如:redis-trib.rb check 127.0.0.1,則會報錯ERR] Sorry, can’t connect to node 127.0.0.1:7000
解決辦法:
vim /usr/lib/ruby/gems/1.8/gems/redis-3.3.0/lib/redis/client.rb,然后修改passord

class Client     DEFAULTS = {      :url => lambda { ENV["REDIS_URL"] },      :scheme => "redis",      :host => "127.0.0.1",      :port => 6379,      :path => nil,      :timeout => 5.0,      :password => "passwd123",      :db => 0,      :driver => nil,      :id => nil,      :tcp_keepalive => 0,      :reconnect_attempts => 1,      :inherit_socket => false     }1234567891011121314151612345678910111213141516
2.帶密碼訪問集群

./redis-cli -c -p 7000 -a passwd12311
3.Java客戶端使用
在java程序里面使用最新的 redis.clients架包,老版本的包里可能沒有提供密碼訪問的方式
例如maven程序:

     <dependency>           <groupId>redis.clients</groupId>           <artifactId>jedis</artifactId>           <version>2.9.0</version>           <type>jar</type>       </dependency>123456123456
然后代碼里面使用帶密碼的構造函數

redisCluster = new JedisCluster(nodeList, TIME_OUT, 3000, 5, "passwd123", poolConfig);

文章出自:CCIE那點事 http://www.qdxgqk.live/ 版權所有。本站文章除注明出處外,皆為作者原創文章,可自由引用,但請注明來源。 禁止全文轉載。
本文鏈接:http://www.qdxgqk.live/?p=3794轉載請注明轉自CCIE那點事
如果喜歡:點此訂閱本站
?
?
萌宠夺宝游戏 四川时时彩是否合法 50期南粤36选7走势图 赚钱理财课程 澳洲幸运8走势图 五分彩骗局套路 无押金一元微信麻将群四川 快乐10分钟技巧规律 福彩开奖22选5 山西十一选五任三最大遗漏数据 足彩胜平负计算器 重庆时时彩龙虎手机版 福建31选7开奖直播 美拍博主赚钱 幸运农场500期走图 熟客温州麻将下载安装 快乐10分怎么玩