给redis 设置密码

机缘

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

一、单台服务器版

步骤:

第一步设置密码:

第一种临时(不推荐):

  1. 连接redis

redis-cli

2、设置密码

config set requirepass abcdefg

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

第二种永久(推荐):

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

  1. 重启redis

sudo systemctl restart redis

3、退出后进行登录

### 设置 Redis 的永久密码 为了确保 Redis 实例的安全性,可以通过编辑 `redis.conf` 文件来设置一个持久化的访问密码。具体来说,在 Redis 安装目录下的 `redis.conf` 文件中找到 `requirepass` 这一行并为其指定一个强密码[^1]。 ```bash # 找到这一行并取消注释,替换 YOUR_PASSWORD 为你自己的密码 requirepass YOUR_PASSWORD ``` 保存更改后的配置文件,并重启 Redis 服务使新设置生效。此时客户端连接时就需要提供这个密码才能成功执行命令: 对于 Java 开发者而言,当使用 Spring Data Redis 提供的 `RedisTemplate` 对象去操作 Redis 数据库的时候,也需要通过如下方式提前完成认证工作[^2]: ```java // 创建 JedisConnectionFactory 并设置主机名,端口以及密码 JedisConnectionFactory jedisConnFactory = new JedisConnectionFactory(); jedisConnFactory.setHostName("localhost"); jedisConnFactory.setPort(6379); jedisConnFactory.setPassword("YOUR_PASSWORD"); // 初始化 RedisTemplate 和 ConnectionFactory RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setConnectionFactory(jedisConnFactory); // 使用前先调用 auth 方法传入相同密码进行验证 template.execute((RedisCallback<Object>) connection -> { connection.auth("YOUR_PASSWORD"); return null; }); ``` 另外值得注意的是,一旦设置了 requirepass 参数之后,任何未授权的操作都将被拒绝直到发送正确的 AUTH 命令为止。因此建议生产环境中始终开启此功能以增强安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值