redis get function return None
<p>I am working on a flask application that interacts with redis. This applciation is deployed on heroku, with a redis add on.</p>

<p>When I am doing some testing with the interaction, I am not able to get the key value pair that I just set. Instead, I always get None as a return type. Here is the example:</p>

<pre><code>   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')
</code></pre>

<p>As shown above, the test route will print None, means the value is not set. I am confused. When I test the server on my local browser it works, and when I tried interacting with redis using heroku python shell it works too. </p>

<p>testing with python shell:</p>

<pre><code>heroku run python
from server import redis
redis.set('test', 'i am here')  # return True
redis.get('test') # return i am here
</code></pre>

<p>I am confused now. How should I properly interact with redis using Flask?</p>