我正在开发一个与 redis 交互的烧瓶应用程序。此应用程序部署在 heroku 上,并添加了 redis。
当我对交互进行一些测试时,我无法获得刚刚设置的键值对。相反,我总是将 None 作为返回类型。这是示例:
import Flask
import redis
app = Flask(__name__)
redis_url = os.getenv('REDISTOGO_URL', 'redis://localhost:6379')
redis = redis.from_url(redis_url)
@app.route('/test')
def test():
redis.set("test", "{test1: test}")
print redis.get("test") # print None here
return "what the freak"
if __name__ == "__main__":
app.run(host='0.0.0.0')
如上图,test route会打印None,表示没有设置值。我很困惑。当我在本地浏览器上测试服务器时,它可以工作,当我尝试使用 heroku python shell 与 redis 交互时,它也可以工作。
使用 python shell 进行测试:
heroku run python
from server import redis
redis.set('test', 'i am here') # return True
redis.get('test') # return i am here
我现在很困惑。我应该如何使用 Flask 与 redis 正确交互?