社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Redis

我可以使用安装在Windows子系统Linux上的Redis和Windows中的python应用程序吗?

Extranomical • 4 年前 • 1112 次点击  

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

我已经在Windows10上启用了WindowsLinux子系统,并安装了Ubuntu和Redis,并启动了服务器。在Windows方面,我使用vscode编写python代码。如下图所示,在我的python代码中,我试图连接到本地主机上的redis:6379

from celery import Celery

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

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

我正在尝试确认我的python代码(用Windows编写)是否可以与运行在Ubuntu上的redis服务器交互。这可能吗?如果可能,我如何确认连接?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/34297
 
1112 次点击  
文章 [ 1 ]  |  最新文章 4 年前
thebjorn
Reply   •   1 楼
thebjorn    4 年前

是的,您可以从Windows的wsl使用redis。首先,确保已安装并启动Redis服务:

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

如果您已经在Windows上运行了Redis服务器,则需要在/etc/redis/redis.conf中编辑port指令(例如,到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安装redis模块( https://pypi.org/project/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服务——这就是我发现需要指定不同端口的原因;-)