title: Fastest way to keep data in memory with Redis in Python
body: <p>I need to save once and load multiples times some big arrays in a flask application with Python 3. I originally stored these arrays on disk with the json library. In order to speed up this, I used Redis on the same machine to store the array by serializing the array in a JSON string. I wonder why I get no improvement (actually it takes more time on the server I use) whereas Redis keeps data in RAM. I guess the JSON serialization isn't optimize but I have no clue how I could speed up this: </p>
  
  <pre><code>import json
  import redis
  import os 
  import time
  
  current_folder = os.path.dirname(os.path.abspath(__file__))
  file_path = os.path.join(current_folder, "my_file")
  
  my_array = [1]*10000000
  
  with open(file_path, 'w') as outfile:
      json.dump(my_array, outfile)
  
  start_time = time.time()
  with open(file_path, 'r') as infile:
      my_array = json.load(infile)
  print("JSON from disk  : ", time.time() - start_time)
  
  r = redis.Redis()
  my_array_as_string = json.dumps(my_array)
  r.set("my_array_as_string", my_array_as_string)
  
  start_time = time.time()
  my_array_as_string = r.get("my_array_as_string")
  print("Fetch from Redis:", time.time() - start_time)
  
  start_time = time.time()
  my_array = json.loads(my_array_as_string)
  print("Parse JSON      :", time.time() - start_time)
  </code></pre>
  
  <p>Result:</p>
  
  <pre><code>JSON from disk  : 1.075700044631958
  Fetch from Redis: 0.078125
  Parse JSON      : 1.0247752666473389
  </code></pre>
  
  <p><strong>EDIT</strong>: it seems that fetching from redis is actually fast, but the JSON parsing is quite slow. Is there a way to fetch directly an array from Redis without the JSON serialization part ? This is what we do with pyMySQL and it is fast. </p>