Могу ли я сделать две колонки уникальными друг для друга? или использовать составной первичный ключ в Redis? - PullRequest
2 голосов
/ 22 февраля 2012

Я играю с Redis и хотел воссоздать таблицу, которая у меня есть в MySQL. Вот команда mysql, которую я использую для ее создания:

CREATE TABLE data_table(
        key1    INT SIGNED NOT NULL,
        value1    INT SIGNED NOT NULL,
        PRIMARY KEY (key1,value1)
    ); 

Мои данные - это два столбца с уникальными номерами, например:

3:1
3:2
3:3
4:1

Когда я играю с redis и пытаюсь создать вышеуказанные данные, клавиша «3» просто заменяется последним введенным мной значением. Есть ли способ сделать эту работу в Redis?

1 Ответ

5 голосов
/ 22 февраля 2012

Лучшей моделью с Redis для представления ваших данных будет использование простых наборов объектов value1 (по одному на каждый объект key1).Следуя примеру, вы можете сохранить в Redis:

3 -> set( 1, 2, 3 )
4 -> set( 1 )

с помощью следующих команд:

sadd 3 1 2 3
sadd 4 1

Вы можете получить все значения для key1 = 3, используя:

smembers 3

Вы можете проверить, существуют ли ключи1 = 3, значение1 = 2, используя:

sismember 3 2

Redis не является системой реляционной базы данных, поэтому вам не следует пытаться сопоставлять реляционную модель с Redis.Вместо этого вам нужно подумать о том, как структурировать и получить доступ к вашим данным, как если бы вы использовали структуры данных в памяти из языка программирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...