我正在尝试将整个response.body保存到memcached。我正在这样做:
Rails.cache.write(request.headers['HTTP_X_MEMCACHED_KEY'], response.body)
问题是它为该值添加了一些垃圾:
o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1355928410.584484:@value"GsI";s<!DOCTYPE html>...
我试图将:raw => true
传递给Rails.cache.write
,但它返回false,并且不会将值放入memcached。我认为它失败是因为response.body无法正确转义。
我也尝试过这种方式:
Rails.cache.write(request.headers['HTTP_X_MEMCACHED_KEY'], Marshal.dump(response.body), :raw => true)
它可以工作,但是值中仍然有一些垃圾:
I"fD<!DOCTYPE html>...
如何将干净的值放入memcached?
response.body.bytes.to_a.map(&:chr).join
作为值传递,它可以正常工作,但是我仍然想知道这是否是最佳解决方案。