diff options
author | Joe Van Dyk <joe@fixieconsulting.com> | 2009-02-02 16:43:14 -0800 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2009-05-18 13:43:56 -0700 |
commit | 29550cc91f8dcbfe3e4020986d719c77ddd2f14d (patch) | |
tree | 3f085b5ee16cdf55f3659bc7bc8dd71d6aaf2115 /activesupport | |
parent | 3e2f0800e33cc056d344a45557815b19463ab416 (diff) | |
download | rails-29550cc91f8dcbfe3e4020986d719c77ddd2f14d.tar.gz rails-29550cc91f8dcbfe3e4020986d719c77ddd2f14d.tar.bz2 rails-29550cc91f8dcbfe3e4020986d719c77ddd2f14d.zip |
Add ability to get multiple memcached keys at the same time (via MemCacheStore#read_multi).
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
Diffstat (limited to 'activesupport')
-rw-r--r-- | activesupport/lib/active_support/cache/mem_cache_store.rb | 5 | ||||
-rw-r--r-- | activesupport/memcached_get_multi.diff | 0 | ||||
-rw-r--r-- | activesupport/test/caching_test.rb | 9 |
3 files changed, 14 insertions, 0 deletions
diff --git a/activesupport/lib/active_support/cache/mem_cache_store.rb b/activesupport/lib/active_support/cache/mem_cache_store.rb index 4d8e1fdd67..90b7526fe1 100644 --- a/activesupport/lib/active_support/cache/mem_cache_store.rb +++ b/activesupport/lib/active_support/cache/mem_cache_store.rb @@ -43,6 +43,11 @@ module ActiveSupport extend Strategy::LocalCache end + # Reads multiple keys from the cache. + def read_multi(*keys) + @data.get_multi keys + end + def read(key, options = nil) # :nodoc: super @data.get(key, raw?(options)) diff --git a/activesupport/memcached_get_multi.diff b/activesupport/memcached_get_multi.diff new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/activesupport/memcached_get_multi.diff diff --git a/activesupport/test/caching_test.rb b/activesupport/test/caching_test.rb index 8bb0c155cf..b845796fe5 100644 --- a/activesupport/test/caching_test.rb +++ b/activesupport/test/caching_test.rb @@ -251,6 +251,15 @@ uses_memcached 'memcached backed store' do end end + def test_multi_get + @cache.with_local_cache do + @cache.write('foo', 1) + @cache.write('goo', 2) + result = @cache.read_multi('foo', 'goo') + assert_equal({'foo' => 1, 'goo' => 2}, result) + end + end + def test_middleware app = lambda { |env| result = @cache.write('foo', 'bar') |