我想在Windows上开发一个python应用程序,它将使用Redis作为芹菜的代理。假设我的应用程序可以与我在Linux的Windows子系统上安装的Redis实例进行交互是正确的吗?
我已经在Windows 10上为Linux启用了Windows子系统,并在其上安装了Ubuntu和Redis,并启动了服务器。在Windows方面,我使用VSCode编写python代码。如下所示,在python代码中,我试图连接localhost上的Redis :6379
from celery import Celery
BROKER_URL = 'redis://localhost:6379/0'
app = Celery('tasks', broker=BROKER_URL)我试图确认用Windows编写的Python代码是否可以与运行在Ubuntu上的Redis服务器进行交互。这是可能的吗?如果是的话,我如何确认连接?
发布于 2019-05-18 16:28:24
是的,您可以从窗口使用来自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会话中,您现在应该看到如下内容:
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服务-这就是我发现需要指定不同端口的方式;-)
https://stackoverflow.com/questions/56200672
复制相似问题