Лучший способ сериализации ключа байтового массива в Redis с Booksleeve

Мне нужно найти лучшую реализацию для отправки байтового массива в пространство ключей сервера Redis с помощью Booksleeve.

Я пробовал другую реализацию, такую ​​как UTF8 Encoding, но я не знаю, какая из них наиболее оптимизирована в памяти сервера Redis (я буду работать с миллионами ключей, как это, поэтому мне действительно нужен самый короткий ключ в памяти).

У кого-нибудь уже было это требование?

1 ответ

В текущей сборке для простоты я придерживался строковых ключей, однако код прекрасно обрабатывал бы двоичный код - он использует двоичный API. IIRC Только на этой неделе я получил патч в своем почтовом ящике, в котором добавлена ​​поддержка двоичного ключа.

Так как это кажется востребованным, я посмотрю на это на этой неделе.


Изменить: неделя пришла и ушла; причина в том, что я также работаю над поддержкой redis-cluster, которая в любом случае потребует новых интерфейсов, потому что:

  • не все операции поддерживаются
  • параллельные (пронумерованные) базы данных не поддерживаются

В общем, мой план состоит в том, чтобы свести обе части работы в одну ветку, давая:

  • новый набор интерфейсов
    • которые используют struct для key параметр с оператором неявного преобразования из string а также byte, позволяя использовать либо взаимозаменяемо
    • с помощью команд redis-cluster и redis-server на отдельных API
    • и новый метод для старого соединения, чтобы получить один из новых API для каждой БД, т.е. Database(3).Keys.Remove(key); или что-то типа того

ETA все еще воображаема, но я хотел объяснить, почему я не просто добавил этот существующий патч - я думаю, что появление redis-cluster делает хорошее время для пересмотра всего API, (но, очевидно, таким способом, который сломать существующий код).

Другие вопросы по тегам