Due to a quirk in memcached, I believe you actually want to store a string
representation in order to use incr/decr.
Try changing the second line to CACHE.set('abc', '123') and see if that
works.
On Thu, Jan 20, 2011 at 11:47 AM, Josiah Ivey <[email protected]> wrote:
> Using both the Dalli and Memcached-client gems, I am unable to
> increment a numeric value:
>
> ruby-1.9.2-p0 > CACHE = MemCache.new 'localhost:11211'
> => <MemCache: 1 servers, ns: nil, ro: false>
> ruby-1.9.2-p0 > CACHE.set('abc', 123)
> => "STORED\r\n"
> ruby-1.9.2-p0 > CACHE.get('abc')
> => 123
> ruby-1.9.2-p0 > CACHE.incr('abc')
> MemCache::MemCacheError: cannot increment or decrement non-numeric
> value
> from /Users/josiahivey/.rvm/gems/ruby-1.9.2-p0/gems/memcache-
> client-1.8.5/lib/memcache.rb:926:in `raise_on_error_response!'
> from /Users/josiahivey/.rvm/gems/ruby-1.9.2-p0/gems/memcache-
> client-1.8.5/lib/memcache.rb:831:in `block in cache_incr'
> from /Users/josiahivey/.rvm/gems/ruby-1.9.2-p0/gems/memcache-
> client-1.8.5/lib/memcache.rb:865:in `call'
> from /Users/josiahivey/.rvm/gems/ruby-1.9.2-p0/gems/memcache-
> client-1.8.5/lib/memcache.rb:865:in `with_socket_management'
> from /Users/josiahivey/.rvm/gems/ruby-1.9.2-p0/gems/memcache-
> client-1.8.5/lib/memcache.rb:827:in `cache_incr'
> from /Users/josiahivey/.rvm/gems/ruby-1.9.2-p0/gems/memcache-
> client-1.8.5/lib/memcache.rb:342:in `block in incr'
> from /Users/josiahivey/.rvm/gems/ruby-1.9.2-p0/gems/memcache-
> client-1.8.5/lib/memcache.rb:886:in `with_server'
> from /Users/josiahivey/.rvm/gems/ruby-1.9.2-p0/gems/memcache-
> client-1.8.5/lib/memcache.rb:341:in `incr'
> from (irb):6
> from /Users/josiahivey/.rvm/rubies/ruby-1.9.2-p0/bin/irb:17:in
> `<main>'
>
> Any ideas?
>
--
awl