Skip to content

Commit 1949049

Browse files
committed
Merge pull request akandratovich#30 from Bishop/patch-1
Fixed example in 'Lists' paragraph
2 parents f0880bd + f319210 commit 1949049

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

ru/redis.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -268,14 +268,14 @@ Redis использует знакомую всем концепцию базы
268268

269269
Списки позволяют хранить и манипулировать массивами значений для заданного ключа. Можно добавлять значения в список, получать первое и последнее значение из списка и манипулировать значениями с заданными индексами. Списки сохраняют порядок своих значений и имеют эффективные операции с использованием индексов. Мы можем создать список `newusers`, содержащий последних зарегистрировавшихся на нашем сайте \linebreak пользователей:
270270

271-
rpush newusers goku
272-
ltrim newusers 0 50
271+
lpush newusers goku
272+
ltrim newusers 0 49
273273

274274
Сначала мы добавляем нового пользователя в начало списка, затем укорачиваем список так, чтобы он содержал 50 последних записей. Это типичный пример использования. Операция `ltrim` имеет асимптотическую сложность O(N), где N - число значений, которое мы удаляем. В этом случае, если мы всегда укорачиваем список после каждой единичной вставки, эта операция имеет постоянную производительность O(1) (потому что N всегда будет равным единице).
275275

276276
Сейчас мы первый раз столкнемся с тем, что значение с одним ключом ссылается на значение с другим ключом. Если мы хотим получить сведения о последних 10 \linebreak пользователях, мы должны сделать следующее:
277277

278-
keys = redis.lrange('newusers', 0, 10)
278+
keys = redis.lrange('newusers', 0, 9)
279279
redis.mget(*keys.map {|u| "users:#{u}"})
280280

281281
Приведенный выше код на языке Ruby показывает случай многократного обращения к базе данных, о котором мы говорили выше.

0 commit comments

Comments
 (0)