memcachedの代わりにkyoto tycoonを試してみようとしています。
kyoto tycoonは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