给redis设置密码

给redis设置密码给redis设置密码

机缘

之前连接redis都是不使用密码,开放所有端口,因此我的服务器遭到了三次黑客攻击,并且因为买的服务器比较便宜,因此安全防护等级也很低。每次被攻击我都只能重装系统,损耗了大量的时间。因此我要设置密码加强redis的防护等级。


一、单台服务器版

步骤:

第一步设置密码:

第一种临时(不推荐):

1、连接redis

redis-cli

给redis设置密码

2、设置密码

config set requirepass abcdefg

requirepass后面的abcdefg就表示密码,大家可以按自己的需求进行设置。系统提示ok就表示设置成功了,但是这种设置在redis关机后就失效了需要重写设置,因此不推荐这种方法。

第二种永久(推荐):

1、找到redis.config文件,并修改第902行的文件在红框的位置写下自己的密码。

给redis设置密码

2、重启redis

3、退出后进行登录

给redis设置密码

给redis设置密码

第二步远程连接:

1、java代码连接

在yml内配置文件即可 

给redis设置密码

2、桌面端连接

redis是默认没有用户名的因此不要写用户名,不然会连不上。

给redis设置密码

二、多台服务器版

这里我们会在两台服务器中开启6个redis实例,搭建分片集群,信息如下:

IP PORT 角色
120.48.46.170 7001 master
120.48.46.170 7002 master
120.48.46.170 7003 master
120.48.46.171 8001 slave
120.48.46.171 8002 slave
120.48.46.171 8003 slave

步骤一:开启对应的端口

在两台服务器分别开启对应的客户端端口与集群总线端口。一般我们使用应用软件只需要开启客户端端口就行了,但是redis集群不仅需要开通redis客户端连接的端口,而且需要开通集群总线端口集群总线端口为redis客户端连接的端口 + 10000。一次我们一共要开启12个端口。不开放集群总线端口的话  redis会一直提示Waiting for the cluster to join…,并且无法连接。

开启客户端端口:

firewall-cmd --zone=public --add-port=7001/tcp --permanen

开启集群总线端口

firewall-cmd --zone=public --add-port=17001/tcp --permanen

重启防火墙

firewall-cmd --reload

 查看开放端口

 firewall-cmd --zone=public --list-ports

给redis设置密码

步骤二:撰写配置文件 

在ip为120.48.46.170的服务器的/opt/soft/redis文件夹下创建创建出7001、7002、7003目录:

# 进入/opt/soft/redis目录
cd /opt/soft/redis

# 创建目录
mkdir 7001 7002 7003 

在ip为120.48.46.170的服务器的/opt/soft/redis文件夹下创建创建出8001、8002、8003目录:

# 进入/opt/soft/redis目录
cd /opt/soft/redis

# 创建目录
mkdir 8001 8002 8003

分别在两个服务器中在/opt/soft/redis下准备一个新的redis.conf文件,内容如下:

port 7001
# 开启集群功能
cluster-enabled yes
# 集群的配置文件名称,不需要我们创建,由redis自己维护,但是文件夹要我们自己创建
cluster-config-file /opt/soft/redis/CusterFile/7001/nodes.conf
# 节点心跳失败的超时时间
cluster-node-timeout 5000
# 持久化文件存放目录,文件夹要我们自己创建
dir /opt/soft/redis/PersistentFile/7001
# 绑定地址
bind 0.0.0.0
# 让redis后台运行
daemonize yes
# 注册的实例ip
replica-announce-ip 120.48.46.170
# 保护模式
protected-mode no
# 数据库数量
databases 1
# 日志,文件夹要我们自己创建
logfile /opt/soft/redis/log/7001/run.log
#设置密码
requirepass mima
#设置集群间的访问密码
masterauth mima
# 云服务器上部署需指定公网ip
cluster-announce-ip 120.48.46.170
# Redis总线端口,用于与其它节点通信
cluster-announce-bus-port 17001

注:cluster-announce-ip 120.48.46.170,cluster-announce-bus-port 17001这两个ip不进行设置会导致redis无法映射到公网上会提示如下报错信息:

i.l.c.c.t.DefaultClusterTopologyRefresh : Unable to connect to [192.168.0.4:

分别在两个服务器中将这个文件拷贝到每个目录下:

# 进入/opt/soft/redis目录
cd /opt/soft/redis
# 执行拷贝
echo 7001 7002 7003 | xargs -t -n 1 cp redis.conf
# 进入/opt/soft/redis目录
cd /opt/soft/redis
# 执行拷贝
echo 8001 8002 8003 | xargs -t -n 1 cp redis.conf

分别在两个服务器中修改每个目录下的redis.conf,将其中的6379修改为与所在目录一致:

# 进入/opt/soft/redis目录
cd /opt/soft/redis
# 修改配置文件
printf '%s\n' 7001 7002 7003| xargs -I{} -t sed -i 's/6379/{}/g' {}/redis.conf
# 进入/opt/soft/redis目录
cd /opt/soft/redis
# 修改配置文件
printf '%s\n'  8001 8002 8003| xargs -I{} -t sed -i 's/6379/{}/g' {}/redis.conf

步骤三:启动

输入以下指令即可。注意-a 后面接的是redis的密码,如果不输入密码,系统会一直提示[ERR] Node 120.48.46.170:7001 NOAUTH Authentication required.并且无法开启redis

redis-cli --cluster create 120.48.46.170:7001 120.48.46.170:7002 120.48.46.170:7003 
120.48.46.171:8001 120.48.46.171:8002 120.48.46.171:8003 --cluster-replicas 1 -a 
mima

执行后,系统提示如下,输入”yes”确认即可。

>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383

# 6390做为6379的从机
Adding replica 192.168.10.102:6390 to 192.168.10.102:6379

# 6391做为6380的从机
Adding replica 192.168.10.102:6391 to 192.168.10.102:6380

# 6389做为6381的从机
Adding replica 192.168.10.102:6389 to 192.168.10.102:6381
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: 0e5eb18533395661e35ac4ebd5298f364e50ad04 192.168.10.102:6379
   slots:[0-5460] (5461 slots) master
M: 9eda6134015f3b415df60e813613a7cf14cdd2df 192.168.10.102:6380
   slots:[5461-10922] (5462 slots) master
M: 505b4fd96d38c68befe839257622cdcec1af35ca 192.168.10.102:6381
   slots:[10923-16383] (5461 slots) master
S: 7d919f337875f7bafcddd3c79a8ae1510202d39d 192.168.10.102:6389
   replicates 505b4fd96d38c68befe839257622cdcec1af35ca
S: b30918baa72b2aa7e564115e738f21145234b84c 192.168.10.102:6390
   replicates 0e5eb18533395661e35ac4ebd5298f364e50ad04
S: a6f714fa624e02a72374f235d5562fc022b143e2 192.168.10.102:6391
   replicates 9eda6134015f3b415df60e813613a7cf14cdd2df
Can I set the above configuration? (type 'yes' to accept): 

出现如下提示即表示创建成功。

给redis设置密码

步骤四:连接命令行连接集群

连接命令:

redis-cli -c -p 7001  #这里输入节点的端口号

输入密码:

auth 密码

三、常见的的坑

1、客户端以单点的方式登录集群

以集群的方式登录集群可以看到该集群下的所有键。

给redis设置密码

 但是你以单点的方式进行登录,你就会发现你只能得到给主节点下的所有键而不能拿到其它节点下的键。

给redis设置密码

 

参考文章:

redis集群Waiting for the cluster to join一直在等待_mob604756f33d49的技术博客_51CTO博客
配置redis集群时一直是Waiting for the cluster to join….._最佳听众!的博客-CSDN博客_redis集群 wait

云服务器Redis集群部署及客户端通过公网IP连接问题_凌波漫步&的博客-CSDN博客_redis集群对外提供统一ip

Redis集群的关闭与重启_郝少的博客-CSDN博客_redis关闭集群

今天的文章给redis设置密码分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/7394.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注