Это может сработать, но не будет интуитивно понятным для любого, кто пытается понять данные без предварительного знания - использование значения поля облегчает анализ данных. Это не только усложнит работу другого разработчика, но также, вероятно, приведет к путанице с любым видом стороннего приложения (например, Redis GUI).
Кроме того, ваш метод должен всегда иметь даже фиксированное количество полей.
Кроме того, любые будущие изменения в модели данных (да, на самом деле ничего не «исправлено») превратят это в кошмар. Вам придется либо создавать версии строк, либо переносить данные, или кто что знает.
Поэтому реальный вопрос заключается в том, почему кто-то хочет не использовать имена полей. Если вы прочтете документы, то обнаружите, что Redis сжимает имена, если они повторяются, поэтому с точки зрения пространства мало потерь. Единственная причина, по которой я могу придумать, это, возможно, оптимизировать количество трафика c, но я бы не стал go, если бы это не было реальной проблемой.
Несмотря на это, если вы одержимы не используя имена полей, вы можете использовать только одно и сериализовать все ваши «фиксированные» значения в него. Это будет более похоже на Redis, хотя у вас все равно будут проблемы, когда схема изменится:
XADD stream * data "[ts_value],[msg_value],[uid_value],[status_value]"