2011-09-24 136 views
25

我在本地机器上使用redis,所以我不需要设置密码来连接到我的php客户端(我使用predis作为客户端)的服务器。但是,我正在将应用程序移至实时服务器,所以我想设置密码以连接到我的Redis服务器。redis:设置redis的密码

我有几个问题:

  • 我查遍有关如何设置密码的网络,它看起来像我需要在redis.conf添加的密码。我无法找到我应该添加到配置文件来设置密码。

  • 也在predis中应该如何添加密码。我使用的参数如下数组连接到redis的服务器

    $ = my_server的阵列( '主机'=> '127.0.0.1', '端口'=> 6379, '数据库'=> 1);

我应该添加这样的密码?

> $my_server = array('host'  => '127.0.0.1','port'  => 
> 6379,'database' => 1,'password'=>password); 
  • 最后一个问题,我试图阻止活的服务器上我的Redis服务器。每次我输入下面的命令,我不断收到同样的错误消息

    Redis的服务器停止

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

    通常

    我的本地机器我进入

    /etc/init.d/redis-server停止

停止Redis的服务器,但它不工作我活的服务器上,因为没有所谓的Redis服务器在我的/etc/init.d

回答

45

要设置密码,编辑您redis.conf文件,找到这一行

# requirepass foobared 

然后取消它,并改变foobared您的密码。确保你选择的东西很长,32个字符左右可能会很好,外部用户很容易每秒钟猜出150k以上的密码,正如配置文件中提到的注释。

要使用predis验证您的新密码,您显示的语法是正确的。只需将密码添加为连接参数之一即可。

要关闭Redis的...您在为pidfile设置您的配置文件,它可能会

pidfile /var/run/redis.pid 

在命令行中运行:

这会给你正在运行的服务器的进程ID,然后使用该pid杀死该进程:

kill 3832 

更新

我也想添加,你也可以使/etc/init.d/redis-server stop你已经习惯了在你的服务器上工作。 /etc/init.d/中的所有文件都只是shell脚本,将redis服务器脚本从本地服务器中取出,然后将其复制到同一位置的实时服务器,然后查看它对vi或其他任何方式的作用你喜欢使用,你可能需要修改一些路径等,但它应该很简单。

+0

这似乎并没有工作在Windows上。我尝试了两个conf文件。我尝试了很多组合的Redis重启。唯一有效的工作是:“redis-cli config set requirepass somepass”。此外,每次服务器重新启动/关闭时,都会丢失密码。所以我想,那就是用windows。 – Jeffz

+0

根据选择的安装过程,我们可以将Redis配置文件设置为“vi /etc/redis/redis.conf”或“vi /etc/redis/6379.conf”(例如),其中“6379”是选择的值港口! –

1

我无法找到什么,虽然我要补充的过程完全到配置 文件来设置密码。

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

9
sudo nano /etc/redis/redis.conf 

发现并取消线# requirepass foobared,然后重新启动服务器

现在你的密码是foobared

31

,你也可以使用客户端以下命令

CMD ::config set requirepass [email protected]$12E45

上述命令的

将设置为[email protected]$12E45作为redis服务器密码。

+0

只需添加:正如http://www.tutorialspoint.com/redis/redis_security.htm中提到的通过redis-cli登录,首先通过运行'redis-cli.exe'进入redis shell。然后输入'AUTH '。 – arun

+5

要禁用密码验证,只需使用'config set requirepass'“' – arun

+2

如果重新启动redis,它将重置为旧的。因此,也要添加conf文件。 – theGamblerRises

2

开放redis的配置文件

sudo nano /etc/redis/redis.conf 

设定密码

更换

# requirepass foobared 

requirepass YOURPASSPHRASE 

重启Redis的

redis-server restart 
1

使用Redis的-CLI:

[email protected]:~# redis-cli 
127.0.0.1:6379> CONFIG SET requirepass secret_password 
OK 

这将临时设置密码(直到Redis的或服务器重启)

测试密码:

[email protected]:~# redis-cli 
127.0.0.1:6379> AUTH secret_password 
OK 
1

对于这一点,你需要更新redis配置文件。默认情况下,redis没有任何密码。

01)开放redis的配置文件

sudo vi /etc/redis/redis.conf 

找到requirepass场下安全部分并取消对field.Then设置你的密码,而不是“foobared”

# requirepass foobared 

它应该像,

requirepass YOUR_PASSWORD 

然后重新启动redis并启动redis-cli。

如果您需要检查您是否已正确设置密码,则可以在redis-cli中的逗号下运行。使用以下命令

[email protected] ~ $ 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 


[email protected] ~ $ 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 

`

2

步骤1.停止redis的服务器/etc/init.d/redis-server停止 步骤2.输入命令:须藤纳米/etc/redis/redis.conf

一步3.find#requirepass foobared字和删除#并改变foobared您的密码

前。 requirepass root

0

如何设置redis密码?使用以下命令 /etc/init.d/redis-server停止

步骤2.输入命令

步骤1.停止redis的服务器:须藤纳米/etc/redis/redis.conf

步骤3.找到#requirepass foobared的单词并删除#并将其改为您的密码

ex。 requirepass根

2

例子:

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