redis:为redis设置密码

时间:2011-09-24 08:29:11

标签: php redis

我在我的本地机器上使用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);
  • 最后一个问题,我正在尝试在实时服务器上停止我的redis-server。每次我输入以下命令时,我都会收到相同的错误消息

      

    redis-server stop

         

    [23925] 9月23日20:23:03#致命错误,无法打开配置文件'停止'

    通常在我的本地机器上输入

      

    /etc/init.d/redis-server stop

停止redis服务器,但它不能在我的实时服务器上工作,因为我的/etc/init.d中没有名为redis-server的进程

12 个答案:

答案 0 :(得分:66)

要设置密码,请编辑redis.conf文件,找到此行

# requirepass foobared

然后取消注释并更改为您的密码。确保你选择了很长的东西,32个字符左右可能会很好,外面的用户很容易每秒猜出超过150k的密码,如配置文件中的注释所示。

要使用predis使用新密码进行身份验证,您显示的语法是正确的。只需添加密码作为连接参数之一。

要关闭redis ...请在配置文件中查看pidfile设置,它可能是

pidfile /var/run/redis.pid

从命令行运行:

cat /var/run/redis.pid

这将为您提供正在运行的服务器的进程ID,然后使用该pid终止进程:

kill 3832

<强>更新

我还想补充一点,您也可以将/etc/init.d/redis-server stop用于在您的实时服务器上运行。 /etc/init.d/中的所有文件都只是shell脚本,将redis-server脚本从本地服务器上取下,然后将其复制到同一位置的实时服务器,然后查看它对vi或其他任何内容的作用你想使用它,你可能需要修改一些路径等,但它应该很简单。

答案 1 :(得分:41)

您还可以在客户端上使用以下命令

cmd :: config set requirepass p@ss$12E45

上面的命令会将p@ss$12E45设置为redis服务器密码。

答案 2 :(得分:16)

sudo nano /etc/redis/redis.conf 

查找并取消注释行# requirepass foobared,然后重新启动服务器

现在您的密码为foobared

答案 3 :(得分:14)

示例:

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

答案 4 :(得分:7)

对于那些使用 docker-compose 的人来说,设置密码真的很容易,不需要像 redis.conf 这样的任何配置文件。以下是您通常使用官方 Redis 映像的方式:

redis:
    image: 'redis:4-alpine'
    ports:
      - '6379:6379'

您只需更改以下内容即可设置自定义密码:

  redis:
    image: 'redis:4-alpine'
    command: redis-server --requirepass yourpassword
    ports:
      - '6379:6379'

一切都将正常启动,您的 Redis 服务器将受到密码保护。

有关详细信息,this blog post 似乎支持这个想法。

答案 5 :(得分:6)

使用redis-cli:

root@server:~# redis-cli 
127.0.0.1:6379> CONFIG SET requirepass secret_password
OK

这将暂时设置密码(直到redis或服务器重启)

测试密码:

root@server:~# redis-cli 
127.0.0.1:6379> AUTH secret_password
OK

答案 6 :(得分:3)

打开redis配置文件

sudo nano /etc/redis/redis.conf 

设置密码短语

替换

# requirepass foobared

requirepass YOURPASSPHRASE

重启redis

redis-server restart

答案 7 :(得分:3)

为此,您需要更新redis配置文件。默认情况下,redis没有任何密码。

01)打开redis配置文件

sudo vi /etc/redis/redis.conf

SECURITY 部分下找到 requirepass 字段并取消注释该字段。然后设置密码而不是“foobared”

# requirepass foobared

应该是,

requirepass YOUR_PASSWORD

然后重启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

`

答案 8 :(得分:3)

步骤1.使用以下命令停止redis服务器 /etc/init.d/redis-server停止 step 2.enter命令:sudo nano /etc/redis/redis.conf

步骤3.找到#equirepass foobared word并删除#并将foobared改为你的密码

离。 requirepass root

答案 9 :(得分:1)

  

我无法找到我应该添加到配置的确切内容   用于设置密码的文件。

配置文件应位于/etc/redis/redis.conf,密码可以在SECURITY部分设置,该部分应位于REPLICATION和LIMITS部分之间。密码设置使用requirepass指令完成。有关更多信息,请尝试查看AUTH命令说明。

答案 10 :(得分:0)

如何设置redis密码?

步骤1.使用以下命令停止redis服务器 /etc/init.d/redis-server stop

step 2.enter命令:sudo nano /etc/redis/redis.conf

步骤3.找到#equirepass foobared word并删除#并将foobared改为你的密码

离。 requirepass root

答案 11 :(得分:0)

运行命令

redis-cli


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 "amolpass"
OK
redis 127.0.0.1:6379> AUTH amolpass    
Ok

-------------------OR ----------------------

获取Redis安装路径

<块引用>

redis-cli 配置获取目录

获取配置文件路径

sudo find / -name "redis.conf" -exec grep -H "^dir" {} \; 2> /dev/null

生成与此相同的密码:

<块引用>

echo "amol-pass" | sha1sum 输出 :960c3dac4fa81b4204779fd16ad7c954f95942876b9c4fb1a255667a9dbe389d

Edit : /etc/redis/redis.conf
requirepass 960c3dac4fa81b4204779fd16ad7c954f95942876b9c4fb1a255667a9dbe389d

重启Redis

 service redis-server restart

 TEST Command : 
 redis-cli 
 set key1 10
 (error) NOAUTH Authentication required.
 auth your_redis_password