Dalli客户端 - 如何连接unix socket?

时间:2011-06-09 16:44:33

标签: ruby-on-rails ruby ruby-on-rails-3 caching memcached

Dalli Client比标准的memcached库快一点。

客户可以通过以下方式初始化:dc = Dalli::Client.new('localhost:11211')

但现在我需要使用unix socket创建客户端,例如文件“tmp / memcached.sock”(这是很好的加速)。阅读文档,代码和示例后,我不知道如何基于套接字创建客户端。任何帮助将不胜感激

3 个答案:

答案 0 :(得分:1)

最后我做了一个让dalli使用unix套接字的提交。现在可以这样做:

Dalli::Client.new("/tmp/memcached.sock")

修改 搜索答案的人为什么unix socket不起作用 - 它已在2.x中删除(如果你想使用UNIXSocket,请使用最新的1.x,参考https://github.com/mperham/dalli/issues/273

答案 1 :(得分:0)

您可以使用类似memcached -d -u someuser -s /tmp/memcached.sock -a 00755之类的命令启动使用套接字的memcached。此命令将Memcached作为dameon运行,用户设置为someuser,套接字位置为/tmp/memcached.sock,权限为775。

您的安装可能已默认创建此套接字,因此请尝试使用上面套接字的位置替换URI,它可能只使用以下内容:

dc = Dalli::Client.new('/tmp/memcached.sock')

如果这对你不起作用,可能需要创建套接字,或者它可能位于不同的位置。

答案 2 :(得分:0)

目前,只有Dalli的第1版支持套接字。修改您的Gemfile以引用v1分支或更改您的Dalli配置以使用端口引用Memcached。

# Gemfile
gem 'dalli', '~>1.1' # for socket support

在Dalli v2中删除了套接字支持。

引用:https://github.com/mperham/dalli/issues/273