private static int BulkString(RedisBuffer redisBuffer, int i, params int[] words)
 {
     foreach (var word in words)
     {
         redisBuffer.WriteByte(TYPE_BULK_STRINGS, i);
         i++;
         i += word.DigitsCount().FastToArrayByte(redisBuffer, i);
         redisBuffer.CopyFrom(CRLF, 0, i, CRLFLength);
         i += CRLFLength;
         i += word.FastToArrayByte(redisBuffer, i);
         redisBuffer.CopyFrom(CRLF, 0, i, CRLFLength);
         i += CRLFLength;
     }
     return i;
 }
 /// <summary>
 /// Preenche o buffer com os caracteres representando o valor inteiro e retorna o número de dígitos que foi preenchido no buffer
 /// </summary>
 /// <param name="value">Valor inteiro maior que zero que será convertido para string</param>
 /// <param name="redisBuffer">Array de caracteres que conterá a representação char do valor numérico</param>
 /// <param name="startIndex">Posição inicial no buffer onde os caracteres serão colocados</param>
 /// <returns>A quantidade de dígitos que foram escritas no array indicado por buffer</returns>
 public static int FastToArrayByte(this int value, RedisBuffer redisBuffer, int startIndex)
 {
     var digits = value.DigitsCount();
     startIndex += digits;
     while (value != 0)
     {
         var rem = value % 10;
         value /= 10;
         redisBuffer.WriteByte(CharsTable[rem], --startIndex);
     }
     return digits;
 }
 private static int BulkString(RedisBuffer redisBuffer, int i, params byte[][] words)
 {
     foreach (var word in words)
     {
         redisBuffer.WriteByte(TYPE_BULK_STRINGS, i++);
         var wordLength = word.Length;
         i += wordLength.FastToArrayByte(redisBuffer, i);
         redisBuffer.CopyFrom(CRLF, 0, i, CRLFLength);
         i += CRLFLength;
         redisBuffer.CopyFrom(word, 0, i, wordLength);
         i += wordLength;
         redisBuffer.CopyFrom(CRLF, 0, i, CRLFLength);
         i += CRLFLength;
     }
     return i;
 }