def set(tag, value, key=nil)
      if value.nil? then
        key ? datastore.hdel(tag, key) : datastore.rem(tag) 
      else
        key ? datastore.hset(tag, key, value) : datastore.set(tag, value)
      end
    end
def set(tag, value, key=nil)
      if value.nil? then
        key ? datastore.hdel(tag, key) : datastore.rem(tag) 
      else
        key ? datastore.hset(tag, key, value) : datastore.set(tag, value)
      end
    end
Sets the given value to the cache tag set as follows:
 * If the key is nil, then the cache entry is the tag.
 * Otherwise, the cache entry is the tag hash entry for the given key.
 * If the value is nil, then the entry is removed from the cache.
 * Otherwise, the value is converted to a string, if necessary, and
   the cache entry is set to the value.

 @param [String, Symbol] tag the cache tag
 @param value the value to set
 @param [String, Symbol, nil] key the cache tag hash key