Как стать автором
Обновить
25
0
cheetah @cheetah

Пользователь

Отправить сообщение

Структуры данных, используемые в Redis

Время на прочтение4 мин
Количество просмотров45K
От переводчика:
Хочу представить вашему вниманию перевод ответа одного из разработчиков Redis, на вопрос о том, какие структуры данных используются внутри Redis. Оригинальную дискуссию вы можете найти на stackoverflow.


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

Но поскольку вы спросили, вот внутренние реализации каждой структуры данных Redis:

  • Строки реализованы с использованием библиотеки динамических строк C, так что мы не платим (говоря асимптотически) за выделение памяти в операциях добавления. Таким образом мы получаем сложность добавления O(N), вместо, например, квадратичной.
  • Списки реализованы как связные списки.
  • Множества и Хэши реализованы как хэш-таблицы.
  • Упорядоченные множества реализованы как списки с пропусками (особый тип сбалансированных деревьев)
Читать дальше →
Всего голосов 35: ↑32 и ↓3+29
Комментарии5

Vico — новый текстовый редактор

Время на прочтение1 мин
Количество просмотров4K


Вовсю идет разработка нового текстового редактора для программистов под Mac OS X — Vico. На мой взгляд очень интересный редактор, нечто с лицом Textmate и мощью Vim. Оступление от разработчика: «Мои глаза требуют отлично выглядящего, современного текстового редактора. Но мои пальцы просто хотят vi.»
Читать дальше →
Всего голосов 39: ↑26 и ↓13+13
Комментарии52

Легковесные веб-приложения на Ruby

Время на прочтение5 мин
Количество просмотров8.7K

Быстрая разработка


Вдохновленный постами на западных блогах вроде «Clone TinyURL with 40 lines of Ruby» или «Clone Pastie in 15 Minutes with Sinatra & DataMapper» я решил попробовать пройти и заодно описать весь процесс реализации легковесного веб-приложения на руби, от проектирования до деплоймента.

Читать дальше
Всего голосов 49: ↑47 и ↓2+45
Комментарии24

Делаем gem для RubyGems

Время на прочтение3 мин
Количество просмотров2.7K

Собираем камешки для Ruby


Зачастую бывает так, что таскаешь из проекта в проект какие-то куски кода. Такие куски очень удобно выносить во внешние файлы, модули. Для этого в Ruby существует RubyGems — менеджер приложений и библиотек, оформленных в один файл-пакет — gem. И собрать такой гем, а главное, сделать его доступным для любой машины, подключенной к интернету, оказалось очень просто.

Итак, gem за пол-часа
Всего голосов 32: ↑27 и ↓5+22
Комментарии17

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность