Я пытаюсь отправить информацию через сервер Redis, я создаю консольное приложение с C # в VS и использую MemoryStream, который состоит из Long, String, Int и Double. На виртуальной машине под управлением Ubuntu я использую MonoDevelop для чтения информации, которую я пишу из VS MemoryStream
Я довольно новичок в передаче данных через сервер, поэтому я предпринял попытку, преобразовав мой MemoryStream в байтовый массив, а затем из этого байтового массива в String, потому что redis принимает только строковые данные, а затем я пытаясь преобразовать его обратно в исходный поток на другой консоли на виртуальной машине Ubuntu.
public void SaveBigData()
{
var cache = RedisConnectorHelper.Connection.GetDatabase();
long timeStamp = shortTime;
String name = "Bob";
int number = rnd.Next(100);
double price = rnd.Next(20) + rnd.NextDouble();
binWriter.Write(timeStamp);
binWriter.Write(name);
binWriter.Write(number);
binWriter.Write(price);
binWriter.Flush();
var testData = dataStream.ToArray();
var value = Convert.ToBase64String(testData);
Console.WriteLine($"Convert.ToBase64String={value}");
cache.StringSet($"Device_Status:{numOfEntries++}", value);
}
private static int numOfEntries = 0;
private static MemoryStream dataStream = new MemoryStream();
private static BinaryWriter binWriter = new BinaryWriter(dataStream);
При чтении данных на моей виртуальной машине мой метод выглядит следующим образом:
public void ReadData()
{
var cache = RedisConnectorHelper.Connection.GetDatabase();
var devicesCount = 10;
for (int i = 0; i < devicesCount; i++)
{
var value = cache.StringGet($"Device_Status:{i}");
var redisString = Convert.FromBase64String(value);
dataStream = new MemoryStream(redisString);
var testPrinter = dataStream.toString();
Console.WriteLine($"Value={value}");
Console.WriteLine($"redisString={redisString}");
Console.WriteLine($"testPrinter={testPrinter}");
}
}
Это все, что я получил, и я не уверен, как получить исходную информацию в тех же типах данных, но также иметь возможность назначать значения на виртуальной машине вместе с полученными значениями.