Звичайна умова є двокрапкою (:), але я веб-розробник, тому особисто віддаю перевагу косому (/) для роздільника. Slash - це вже настільки важливий роздільник у URL-адресах, які мають бути уніфікованими локаторами ресурсів, настільки клавішами ресурсів. Чому варто застосовувати інший підхід із двокрапкою (:)? Чи допомагає щось?
Розглянемо цей приклад:
У нас є RESTful API для іграшкових предметів. Є один:
http://example.com/api/toy/234
Де ми її зберігаємо? Ми використовуємо Redis і косу рису, тому ключ очевидний:
toy/234
Це унікальний ключ для іграшки. Тепер ключ можна використовувати і на стороні клієнта:
{
key: "toy/234",
color: "red",
url: function () {
return API_BASE_URL + this.key;
}
}
Користувач запитує об’єкт з ключем toy/666
. Як отримати його від Redis? Приклад, пов’язаний з Node.js:
redis.get(key, function reply_callback(error, toystring) {
var toy = JSON.parse(toystring);
...
}
Не потрібно перетворювати косої риски в колони і навпаки. Зручно, ти не думаєш?
Примітка. Завжди переконайтеся, що користувач може отримати доступ лише до речей, які ви планували. Наведений вище підхід URL-до-ключа може також отримати user/1/password
, як зазначають коментатори. Це не повинно бути проблемою, якщо ви використовуєте Redis як загальнодоступний кеш лише для читання.
scan
це не варіант @EranH., це найкраща практика ітерації ключів.scan
використовується для того, щоб поступово повторювати колекцію елементів.