#ruby-on-rails #ruby #ruby-on-rails-3 #caching #memcached
#ruby-on-rails #ruby #ruby-on-rails-3 #кэширование #memcached
Вопрос:
Клиент Dalli немного быстрее, чем стандартная библиотека memcached.
Клиент может быть инициализирован: dc = Dalli::Client.new('localhost:11211')
Но теперь мне нужно создать клиент, используя сокет unix, например, файл «tmp / memcached.sock» (это хорошее ускорение). После прочтения документации, кода и примеров я не знаю, как создать клиент на основе сокета. Буду признателен за любую помощь
Ответ №1:
Наконец, я принял решение заставить dalli работать с сокетами unix. Теперь это можно будет сделать:
Dalli::Client.new("/tmp/memcached.sock")
Редактировать:
для людей, ищущих ответы, почему сокет unix не работает — он был удален в версии 2.x (если вы хотите использовать UNIXSocket, пожалуйста, используйте последнюю версию 1.x, см.https://github.com/mperham/dalli/issues/273 )
Ответ №2:
Вы можете запустить memcached с сокетом, используя команду, подобную memcached -d -u someuser -s /tmp/memcached.sock -a 00755
Эта команда запускала бы Memcached как dameon, для пользователя было бы установлено значение someuser, а расположение сокета было бы /tmp / memcached.sock с правами доступа 775.
Возможно, ваша установка уже создала этот сокет по умолчанию, поэтому попробуйте заменить URI на расположение сокета выше, и это может сработать, используя что-то вроде этого:
dc = Dalli::Client.new('/tmp/memcached.sock')
Если у вас это не работает, возможно, потребуется создать сокет или он может находиться в другом месте.
Комментарии:
1. irb (main):005:0> Dalli::Client.new(«/tmp/memcached.sock»).set(«A», «B») Ошибка SocketError: getaddrinfo: имя или служба неизвестны
Ответ №3:
На данный момент только версии 1 Dalli поддерживают сокеты. Измените свой Gemfile так, чтобы он ссылался на ветку v1, или измените конфигурацию Dalli так, чтобы она ссылалась на Memcached с использованием port.
# Gemfile
gem 'dalli', '~>1.1' # for socket support
Поддержка сокетов была прекращена в Dalli v2.
Цитировать: https://github.com/mperham/dalli/issues/273