gpt4 book ai didi

python - 我可以将安装在适用于 Linux 的 Windows 子系统上的 Redis 与 Windows 中的 python 应用程序一起使用吗?

转载 作者:IT王子 更新时间:2023-10-29 06:16:24 28 4
gpt4 key购买 nike

我想在 Windows 上开发一个 python 应用程序,它将使用 Redis 作为 Celery 的代理。假设我的应用程序可以与我安装在适用于 Linux 的 Windows 子系统上的 Redis 实例交互是否正确?

我在 Windows 10 上启用了适用于 Linux 的 Windows 子系统,并在其上安装了 Ubuntu 和 Redis,并启动了服务器。在 Windows 端,我使用 VSCode 编写 python 代码。如下所示,在我的 python 代码中,我尝试连接到 localhost:6379 上的 Redis

from celery import Celery

BROKER_URL = 'redis://localhost:6379/0'

app = Celery('tasks', broker=BROKER_URL)

我正在尝试确认我在 Windows 中编写的 Python 代码是否可以与在 Ubuntu 上运行的 Redis 服务器进行交互。这可能吗?如果可以,我该如何确认连接?

最佳答案

是的,您可以在 Windows 中使用 wsl 中的 redis。首先,确保你已经安装并启动了 redis 服务:

sudo apt-get install redis-server
sudo systemctl enable redis-server.service

如果您已经在 Windows 上运行了一个 Redis 服务器,您需要在/etc/redis/redis.conf 中编辑端口指令(例如,像我在下面的命令中所做的那样,将端口设置为 7379)。

然后启动服务

sudo service redis-server start

然后运行 ​​redis-cli 并发出 monitor 命令(如果您使用的是默认设置,则可以跳过 -p 7379端口):

bp@bjorn8:~$ redis-cli -p 7379
127.0.0.1:6379> monitor
OK

现在,在 Windows 命令提示符下,从 pypi ( https://pypi.org/project/redis/ ) 安装 redis 模块:

pip install redis

然后启动 python 并发出测试命令(同样,如果您使用的是默认端口,请使用 6379):

>>> import redis
>>> cn = redis.Redis('localhost', 7379, 0)
>>> cn.keys("*")
[]

在您的 wsl session 中,您现在应该看到如下内容:

1558196107.718695 "KEYS" "*"

注意:redis 是不会模糊服务器在哪里的。如果你在 windows 上安装了 cli 工具,你可以从 dos 向运行在 wsl 上的服务器发出命令:

c:\srv> redis-cli -p 7379
redis 127.0.0.1:7379> keys "*"
(empty list or set)
redis 127.0.0.1:7379>

反之亦然(wsl 上的 redis-cli 将愉快地连接到在 Windows 上运行的 redis 服务——这就是我发现我需要指定不同端口的方式;-)

关于python - 我可以将安装在适用于 Linux 的 Windows 子系统上的 Redis 与 Windows 中的 python 应用程序一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56200672/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com