class_docstr: This DataStore sends policies over redis pubsub and get/set.
  
  Deployment
  ==========
  It assumes that a redis server is already available. We make this assumption because during
  multinode training at this time, redis is already used for communicating replay memories.
  
  Communication
  =============
  
  A redis pubsub channel is used by the training worker to signal to the rollout workers that a
  new policy is ready. When this occurs, a new policy is loaded from the redis key/value store
  where key is the same as the pubsub channel. Originally, just the pubsub was used, but that
  could result in a race condition where the master worker publishes the first policy and waits
  for the rollout workers to submit all rollouts, while a delayed rollout worker waits for the
  first policy since it subscribed to the channel after the initial policy was published.
class_docstr_tok: ["This","DataStore","sends","policies","over","redis","pubsub","and","get\/set",".","Deployment","==========","It","assumes","that","a","redis","server","is","already","available",".","We","make","this","assumption","because","during","multinode","training","at","this","time",",","redis","is","already","used","for","communicating","replay","memories",".","Communication","=============","A","redis","pubsub","channel","is","used","by","the","training","worker","to","signal","to","the","rollout","workers","that","a","new","policy","is","ready",".","When","this","occurs",",","a","new","policy","is","loaded","from","the","redis","key\/value","store","where","key","is","the","same","as","the","pubsub","channel",".","Originally",",","just","the","pubsub","was","used",",","but","that","could","result","in","a","race","condition","where","the","master","worker","publishes","the","first","policy","and","waits","for","the","rollout","workers","to","submit","all","rollouts",",","while","a","delayed","rollout","worker","waits","for","the","first","policy","since","it","subscribed","to","the","channel","after","the","initial","policy","was","published","."]
docstr: For now, this data store does not handle its own deployment, it piggybacks off of the redis
  memory backend
docstr_tok: ["For","now",",","this","data","store","does","not","handle","its","own","deployment",",","it","piggybacks","off","of","the","redis","memory","backend"]
code: def undeploy(self):
      """
      For now, this data store does not handle its own deployment, it piggybacks off of the redis
      memory backend
      """
      pass
  
file_path: coach/rl_coach/data_stores/redis_data_store.py
imports: import time
  import uuid
  import redis
  from rl_coach.architectures.tensorflow_components.savers import GlobalVariableSaver
  from rl_coach.data_stores.data_store import DataStore, DataStoreParameters
label_desc: Use image node_id 4 for calling the RedisDataStore obj's underlying member method code with example usage: obj.undeploy() without return types