如何在单个服务器上以不同端口运行Redis?

9

我正在使用kue,它使用node_redis。但是我已经在使用node_redis来处理我的会话,所以我想让kue在一个特定的端口(如默认的6379)上创建一个服务器,然后在端口1234上侦听。

我该怎么做呢?我找到了这篇文章,它谈到了类似的内容,但我不想创建一个初始化脚本来完成这个工作。


你是否考虑过将它们放在不同的数据库中?Redis默认配置有0-15个数据库。我有生产服务器在一个数据库中运行工作流管理器,而另一个数据库处理会话。无需在2个端口上运行或运行2个实例。由于它们在同一台机器上,因此在运行2个端口/实例方面并没有任何好处。 - Michael Papile
3个回答

23

启动redis-server并为'port'参数提供不同的参数,可以在命令行上完成:

启动redis-server并提供命令行参数以更改'port'参数:

edd@max:~$ redis-server -h
Usage: ./redis-server [/path/to/redis.conf] [options]
       ./redis-server - (read config from stdin)
       ./redis-server -v or --version
       ./redis-server -h or --help
       ./redis-server --test-memory <megabytes>

Examples:
       ./redis-server (run the server with default conf)
       ./redis-server /etc/redis/6379.conf
       ./redis-server --port 7777
       ./redis-server --port 7777 --slaveof 127.0.0.1 8888
       ./redis-server /etc/myredis.conf --loglevel verbose

Sentinel mode:
       ./redis-server /etc/sentinel.conf --sentinel
edd@max:~$ 
你也可以重新考虑你的方法。Redis非常擅长处理写操作,所以你可以用第二个数据库来解决问题。你可以在/etc/rc.local等位置设置,以便在启动时运行此操作。

感谢您的帖子,它让我意识到我甚至不需要配置文件。顺便说一下:我有一个第三方的PHP脚本,使用flushall并清除所有缓存,包括我的其他应用程序命名空间。这就是我启动另一个实例的原因,因为flushall会清除所有数据库。 - smozgur
请参考此处 -> https://bencane.com/2013/11/12/installing-redis-and-setting-up-master-slave-replication/ - Mani Kasi

2

非常简单的命令:

echo "port 4000" | redis-server -

echo "port 4001" | redis-server -

这个命令可以在Redis服务器上设置端口号。只需运行此命令并指定所需的端口号即可。

-1

您可以在单台计算机上使用不同端口运行多个Redis实例。这意味着您可以按照以下步骤操作:

通过安装第一个Redis实例,默认情况下它会在localhost:6379上监听。

  • 对于第二个实例
    创建一个新的工作目录

默认的Redis实例使用/var/lib/redis作为其工作目录,如果您没有手动更改,则转储内存内容将保存在此目录下,并命名为dump.rdb。为避免运行时冲突,我们需要创建一个新的工作目录。

mkdir -p /var/lib/redis2/
chown redis /var/lib/redis2/
chgrp redis /var/lib/redis2/

生成配置

通过复制 /etc/redis.conf 文件来创建一个新的配置文件。

cp /etc/redis.conf /etc/redis2.conf
chown redis /etc/redis2.conf

编辑以下设置以避免冲突

logfile "/var/log/redis/redis2.log"
dir "/var/lib/redis2"
pidfile "/var/run/redis/redis2.pid"
port 6380

创建服务文件

cp /usr/lib/systemd/system/redis.service /usr/lib/systemd/system/redis2.service

修改“服务”部分的设置

[Service]
ExecStart=/usr/bin/redis-server /etc/redis2.conf --daemonize no
ExecStop=/usr/bin/redis-shutdown redis2

设置开机自启动

      systemctl enable redis2

启动第二个Redis

service redis2 start


check status

lsof -i:6379
lsof -i:6380

通过遵循以下步骤,您可以启动两个Redis服务器。如果您想要更多,请再次重复这些步骤。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接