memcachedの代わりにkyoto tycoonを試してみようとしています。
kyoto tycoonはmemcachedと同じインターフェースで起動できるとのことで、当然memcachedライブラリが使えます
日本語のキーが使えるかどうか確認します
- memcachedライブラリ
$ su # export http_proxy=proxy:port # gem install memcached
#!/bin/env ruby -Ku # -*- encoding:utf-8 -*- require "rubygems" require "memcached" require "nkf" cache=Memcached.new "localhost:11211" cache.set("sony","6758",0) puts cache.get("sony") key="ソニー" cache.set(key,"ソニー",0) puts cache.get(key)
$ ruby mem.rb 6758 /Library/Ruby/Gems/1.8/gems/memcached-1.5.0/lib/memcached/memcached.rb:630:in `reraise': Key {"ソニー"=>nil} (Memcached::ABadKeyWasProvidedOrCharactersOutOfRange) from /Library/Ruby/Gems/1.8/gems/memcached-1.5.0/lib/memcached/memcached.rb:608:in `check_return_code' from /Library/Ruby/Gems/1.8/gems/memcached-1.5.0/lib/memcached/memcached.rb:306:in `set' from mem.rb:11
なんかだめ。。
ちなみにperlだと
#!/usr/bin/perl use strict; use warnings; use Cache::Memcached::Fast; my $memd=Cache::Memcached::Fast->new({ servers => [ { address => 'localhost:11211' }], }); # 値を追加 key => value my $key='ソニーal'; $memd->set($key=> 'そにー2'); # 値を取得 my $id = $memd->get($key); print "$id\n";
$ perl mem.pl そにー2
rubyのライブラリが悪いようだ
ちなみにOSはMountain Lion