html текст
All interests
  • All interests
  • Design
  • Food
  • Gadgets
  • Humor
  • News
  • Photo
  • Travel
  • Video
Click to see the next recommended page
Like it
Don't like
Add to Favorites

Gibson Cache Server из песочницы

imageВ своей работе мне часто приходится использовать key-value хранилище для организации связи между процессами, хранения настроек системы, временных данных и т. д. Для данных целей я использую Redis. Меня он вполне устраивает, еще и hiredis всем библиотекам библиотека.
Буквально сегодня наткнулся на совсем новый проект — Gibson Cache Server. Первый коммит датирован 17 маем 2013 года. О чем и речь!

Gibson Cache Server — in-memory key-value база данных, в основе которой лежит структура данных — дерево, в то время как redis и memcached используют хеш-таблицу. Это позволяет использовать операции сразу над несколькими ключами.

Особенности, заявленные разработчиком:
  • Чрезвычайно быстрая
  • Используется настолько мало памяти, насколько это возможно
  • Поддерживает LZF сжатие
  • Поддерживает Time-To-Live (время жизни ключа)
  • Поддерживает функциональность для блокировки и разблокировки ключей
  • Ну и собственно самое главное — множественные операции

Установка


Сервер

Здесь ничего сложного нет. Исходники сервера можно взять здесь.
git clone https://github.com/evilsocket/gibson.git
cd gibson
сmake -G «Unix Makefiles» .
make
sudo make install

Конфигурационный файл находится в /etc/gibson/gibson.conf
К слову, сервер можно запускать с ключем -c, указывая путь к файлу конфигурации, и не устанавливать всё в системные директории.

Клиент

Исходники находятся тут.
Здесь всё аналогично. Единственное, что нужно отметить, в ./src/linenoise должны лежать исходники библиотеки linenoise.
После
git clone https://github.com/evilsocket/libgibsonclient
cd libgibsonclient
сmake -G «Unix Makefiles» .
make

У нас появляется «джентельменский набор»: заголовчный файл, сама библиотека и gibson-cli.

Демонстрация


Запуск клиента и список команд, которые доступны на данный момент.
Скрытый текст
deck@crunch ~/work/libgibsonclient $ ./gibson-cli -u /tmp/gibson.sock 

type :help or :h for a list of commands, :quit or :q to quit.

local> :h
	SET <ttl> <key> <value>
	TLL <key> <ttl>
	GET <key>
	DEL <key>
	INC <key>
	DEC <key>
	LOCK <key> <seconds>
	UNLOCK <key>
	MSET <prefix> <value>
	MTTL <prefix> <ttl>
	MGET <prefix>
	MDEL <prefix>
	MINC <prefix>
	MDEC <prefix>
	MLOCK <prefix> <seconds>
	MUNLOCK <prefix>
	COUNT <prefix>
	STATS
	PING
	SIZEOF <key>
	MSIZEOF <prefix>
	ENCOF <key>


Стандартные set/get
Скрытый текст
local> set 0 foo 5
<STRING> 5
local> get foo
<STRING> 5


И с использованием TTL.
Скрытый текст
local> set 3 bar hi!
<STRING> hi!
local> get bar
<STRING> hi!
local> get bar
<REPL_ERR_NOT_FOUND>


Ну и множественные get/set
Скрытый текст
local> set 0 score:user1  400
<STRING> 400
local> set 0 score:user2  100
<STRING> 100
local> set 0 score:user3  900
<STRING> 900
local> mget score
score:user1 => <STRING> 400
score:user2 => <STRING> 100
score:user3 => <STRING> 900
local> mset score 0
<NUMBER> 3
local> mget score
score:user1 => <STRING> 0
score:user2 => <STRING> 0
score:user3 => <STRING> 0



Производительность


На сайте разработчика присутствуют данные тестов, которые он провел над операциями get/set на машине
Intel® Core(TM) i3-2130 CPU @ 3.40GHz with 8GB of RAM, с Debian Squeeze.
Сравнивал он свою базу данных с Redis. Результаты следующие:
Redis
Скрытый текст
$ redis-benchmark -c 1 -n 100000 -q -t SET
SET: 51519.84 requests per second

$ redis-benchmark -c 1 -n 100000 -q -t GET
GET: 49212.60 requests per second


Gibson
Скрытый текст
@ Created 100000 / 100000 in 1216ms
-- 82236.842105 Req/s

@ Verified : 100000 / 100000 in 1145ms

-- 87336.244541 Req/s


Если не лукавит, то производительность на этих операциях выше у Gibson на 60 процентов.

Заключение


В настоящее время уже есть библиотека для php. Также, обещают в скором времени добавить поддержку Nodejs.
Библиотека не может быть не сырой, но, несомненно, заслуживает внимания. Под мои задачи должна вписаться идеально. Посмотрим, что получится.
Читать дальше
Twitter
Одноклассники
Мой Мир

материал с habrahabr.ru

0

      Add

      You can create thematic collections and keep, for instance, all recipes in one place so you will never lose them.

      No images found
      Previous Next 0 / 0
      500
      • Advertisement
      • Animals
      • Architecture
      • Art
      • Auto
      • Aviation
      • Books
      • Cartoons
      • Celebrities
      • Children
      • Culture
      • Design
      • Economics
      • Education
      • Entertainment
      • Fashion
      • Fitness
      • Food
      • Gadgets
      • Games
      • Health
      • History
      • Hobby
      • Humor
      • Interior
      • Moto
      • Movies
      • Music
      • Nature
      • News
      • Photo
      • Pictures
      • Politics
      • Psychology
      • Science
      • Society
      • Sport
      • Technology
      • Travel
      • Video
      • Weapons
      • Web
      • Work
        Submit
        Valid formats are JPG, PNG, GIF.
        Not more than 5 Мb, please.
        30
        surfingbird.ru/site/
        RSS format guidelines
        500
        • Advertisement
        • Animals
        • Architecture
        • Art
        • Auto
        • Aviation
        • Books
        • Cartoons
        • Celebrities
        • Children
        • Culture
        • Design
        • Economics
        • Education
        • Entertainment
        • Fashion
        • Fitness
        • Food
        • Gadgets
        • Games
        • Health
        • History
        • Hobby
        • Humor
        • Interior
        • Moto
        • Movies
        • Music
        • Nature
        • News
        • Photo
        • Pictures
        • Politics
        • Psychology
        • Science
        • Society
        • Sport
        • Technology
        • Travel
        • Video
        • Weapons
        • Web
        • Work

          Submit

          Thank you! Wait for moderation.

          Тебе это не нравится?

          You can block the domain, tag, user or channel, and we'll stop recommend it to you. You can always unblock them in your settings.

          • habrahabr.ru
          • домен habrahabr.ru

          Get a link

          Спасибо, твоя жалоба принята.

          Log on to Surfingbird

          Recover
          Sign up

          or

          Welcome to Surfingbird.com!

          You'll find thousands of interesting pages, photos, and videos inside.
          Join!

          • Personal
            recommendations

          • Stash
            interesting and useful stuff

          • Anywhere,
            anytime

          Do we already know you? Login or restore the password.

          Close

          Add to collection

             

            Facebook

            Ваш профиль на рассмотрении, обновите страницу через несколько секунд

            Facebook

            К сожалению, вы не попадаете под условия акции