我在我的本地机器上使用redis所以我真的不需要设置密码来连接到我的php客户端服务器(我使用predis作为客户端).但是,我正在将我的应用程序移动到实时服务器,因此我想设置一个密码来连接到我的redis服务器.
我有几个问题:
我在互联网上检查了如何设置密码,看起来我需要在redis.conf中添加密码.我无法找到我应该在配置文件中添加的内容来设置密码.
同样在predis中我应该如何添加密码.我正在使用以下参数数组连接到redis服务器
$ my_server = array('host'=>'127.0.0.1','port'=> 6379,'database'=> 1);
我应该这样添加密码吗?
> $my_server = array('host' => '127.0.0.1','port' =>
> 6379,'database' => 1,'password'=>password);
Run Code Online (Sandbox Code Playgroud)
最后一个问题,我正试图在实时服务器上停止我的redis-server.每次我输入以下命令时,我都会收到相同的错误消息
redis-server停止
[23925] 9月23日20:23:03#致命错误,无法打开配置文件'停止'
通常在我进入的本地机器上
/etc/init.d/redis-server停止
停止redis服务器,但它不能在我的实时服务器上工作,因为我的/etc/init.d中没有名为redis-server的进程
pro*_*php 87
要设置密码,请编辑redis.conf文件,找到此行
# requirepass foobared
Run Code Online (Sandbox Code Playgroud)
然后取消注释并更改为您的密码.确保你选择了很长的东西,32个字符左右可能会很好,外面的用户很容易每秒猜测超过150k的密码,如配置文件中提到的那样.
要使用predis使用新密码进行身份验证,您显示的语法是正确的.只需添加密码作为连接参数之一.
要关闭redis ...请检查配置文件中的pidfile设置,它可能是
pidfile /var/run/redis.pid
Run Code Online (Sandbox Code Playgroud)
从命令行运行:
cat /var/run/redis.pid
Run Code Online (Sandbox Code Playgroud)
这将为您提供正在运行的服务器的进程ID,然后使用该pid终止进程:
kill 3832
Run Code Online (Sandbox Code Playgroud)
更新
我还想补充一点,你也可以让/etc/init.d/redis-server stop你习惯在你的实时服务器上工作./etc/init.d/中的所有文件都只是shell脚本,将redis-server脚本从本地服务器上取下,然后将其复制到同一位置的实时服务器,然后查看它对vi或其他任何内容的作用你想使用,你可能需要修改一些路径等,但它应该很简单.
Suh*_*wad 46
您也可以在客户端上使用以下命令
cmd :: config set requirepass p@ss$12E45
上面的命令将设置p@ss$12E45为redis服务器密码.
Fla*_*oia 25
例:
redis 127.0.0.1:6379> AUTH PASSWORD
(error) ERR Client sent AUTH, but no password is set
redis 127.0.0.1:6379> CONFIG SET requirepass "mypass"
OK
redis 127.0.0.1:6379> AUTH mypass
Ok
Run Code Online (Sandbox Code Playgroud)
Sau*_*tel 16
sudo nano /etc/redis/redis.conf
Run Code Online (Sandbox Code Playgroud)
找到并取消注释行# requirepass foobared,然后重启服务器
现在你的密码是 foobared
小智 11
使用redis-cli:
root@server:~# redis-cli
127.0.0.1:6379> CONFIG SET requirepass secret_password
OK
Run Code Online (Sandbox Code Playgroud)
这将暂时设置密码(直到redis或服务器重启)
测试密码:
root@server:~# redis-cli
127.0.0.1:6379> AUTH secret_password
OK
Run Code Online (Sandbox Code Playgroud)
打开redis配置文件
sudo nano /etc/redis/redis.conf
Run Code Online (Sandbox Code Playgroud)
设置密码
代替
# requirepass foobared
Run Code Online (Sandbox Code Playgroud)
和
requirepass YOURPASSPHRASE
Run Code Online (Sandbox Code Playgroud)
重启redis
redis-server restart
Run Code Online (Sandbox Code Playgroud)
小智 9
使用以下命令停止 Redis 服务器
/etc/init.d/redis-server stop
Run Code Online (Sandbox Code Playgroud)
输入命令:sudo nano /etc/redis/redis.conf
找到 requirepass foobared 单词并删除 # 并将 foobared 更改为您的密码
前任。需要root权限
对于那些谁使用docker-compose,它真的很容易不喜欢任何配置文件设置密码redis.conf。以下是您通常使用官方 Redis 映像的方式:
redis:
image: 'redis:4-alpine'
ports:
- '6379:6379'
Run Code Online (Sandbox Code Playgroud)
以下是设置自定义密码所需的全部更改:
redis:
image: 'redis:4-alpine'
command: redis-server --requirepass yourpassword
ports:
- '6379:6379'
Run Code Online (Sandbox Code Playgroud)
一切都将正常启动,您的 Redis 服务器将受到密码保护。
有关详细信息,此博客文章似乎支持该想法。
在 REDIS 6 之前的版本中,保护 REDIS 的唯一方法是打开您的redis.conf,取消注释该# requirepass行,然后添加密码。然而,这样做的缺点是这是所有连接共享的全局密码。
requirepass iampwd
Run Code Online (Sandbox Code Playgroud)
除非您需要向后兼容,否则您应该迁移到 REDIS 6,并使用 ACL 创建具有最低权限的用户
acl setuser dummyuser on >dummypwd allcommands allkeys
Run Code Online (Sandbox Code Playgroud)
小智 6
对于安装了 HomeBrew/Brew (redis-cli) 的 Mac:
redis-cli
AUTH oldpassword
CONFIG SET requirepass "newpassword"
CONFIG REWRITE
Run Code Online (Sandbox Code Playgroud)
重新开始:
brew services stop redis
//relogin
Run Code Online (Sandbox Code Playgroud)
小智 5
为此,您需要更新redis 配置文件。默认情况下,redis 没有任何密码。
01) 打开redis配置文件
sudo vi /etc/redis/redis.conf
Run Code Online (Sandbox Code Playgroud)
在SECURITY部分下找到requirepass字段并取消对该字段的注释。然后设置您的密码而不是“foobared”
# requirepass foobared
Run Code Online (Sandbox Code Playgroud)
应该是这样的
requirepass YOUR_PASSWORD
Run Code Online (Sandbox Code Playgroud)
然后重启redis,启动redis-cli。
如果你需要检查你是否设置了正确的密码,你可以在 redis-cli 中运行下面的命令。
sithara@sithara-X555UJ ~ $ redis-cli
127.0.0.1:6379> set key1 18
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth admin
OK
127.0.0.1:6379> get key1
(nil)
127.0.0.1:6379> exit
sithara@sithara-X555UJ ~ $ redis-cli
127.0.0.1:6379> set key1 18
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth admin
OK
127.0.0.1:6379> set key2 check
OK
127.0.0.1:6379> get key2
"check"
127.0.0.1:6379> get key1
(nil)
127.0.0.1:6379> set key1 20
OK
127.0.0.1:6379> get key1
"20"
127.0.0.1:6379> exit
Run Code Online (Sandbox Code Playgroud)
`
| 归档时间: |
|
| 查看次数: |
120977 次 |
| 最近记录: |