当redis达到“最大内存”条件时,它将允许客户端进行读取,但不能进行写入。
当然,这将导致致命错误……有什么方法可以使Rails处理缓存的读或写错误,因此,如果缓存发生问题(可用性,读取,写入等),它将继续以如果缓存设置为“关闭”?
您可以告诉redis在内存已满时要遵守的不同行为。
# volatile-lru -> remove the key with an expire set using an LRU algorithm
# allkeys-lru -> remove any key accordingly to the LRU algorithm
# volatile-random -> remove a random key with an expire set
# allkeys->random -> remove a random key, any key
# volatile-ttl -> remove the key with the nearest expire time (minor TTL)
# noeviction -> don't expire at all, just return an error on write operations
默认是
# maxmemory-policy volatile-lru
也许最好的选择是’volatile-ttl’,并确保所有缓存都包括:expires_in选项。
我不是专家,也没有这样做。这只是基于我当前对Redis和Rails的理解。
问题内容: 我试图找出在以下情况下“ maxmemory”的安全设置: 大量写入的应用程序 8GB RAM 假设其他进程占用约1GB 这意味着redis进程的内存使用量不得超过7GB 每个BGSAVE事件的内存使用量都会增加一倍,原因是: 在redis 文档中,有关BGSAVE事件的内存使用量增加的说法如下: 如果要在写入量很大的应用程序中使用Redis,则在将RDB文件保存在磁盘上或重写AOF日
问题内容: 我正在使用Rails 4.1,并设置共享Redis ElasticCache节点进行缓存。我尝试了https://github.com/redis- store/redis-store 和https://github.com/sorentwo/readthis,它们看起来很棒。 但是,如果Redis崩溃了怎么办?readthis和redis-store都完全失败。我宁愿网站没有缓存也慢
Rails 缓存简介 本文要教你如果避免频繁查询数据库,在最短的时间内把真正需要的内容返回给客户端。 读完本文,你将学到: 页面和动作缓存(在 Rails 4 中被提取成单独的 gem); 片段缓存; 存储缓存的方法; Rails 对条件 GET 请求的支持; 1 缓存基础 本节介绍三种缓存技术:页面,动作和片段。Rails 默认支持片段缓存。如果想使用页面缓存和动作缓存,要在 Gemfile 中
Rails 缓存实践 社区相关精华话题 Rails 缓存简介 总结 Web 应用中常用的各种 Cache by quakewang Cache 在 Ruby China 里面的应用 by huacnlee Web 应用的缓存设计模式 by robbin Rails 中使用 ETag 加速页面载入 by huacnlee Redis 作为缓存服务器的配置 Rails 的 Caching 大家的用法是
问题内容: 我还没有使用过Redis,但我听说过它,并打算尝试将其作为缓存存储。 我听说Redis使用内存作为缓存存储数据库,那么如果我使用变量作为对象或字典数据类型来存储数据有什么区别?喜欢: Redis有什么优势? 问题答案: Redis是一个 远程 数据结构服务器。这肯定比仅将数据存储在本地内存中要慢(因为它涉及套接字往返来获取/存储数据)。但是,它也带来了一些有趣的属性: 应用程序的所有进
问题内容: 我写了一个程序,可以总结如下: 实际代码(尤其是)要复杂得多。仅使用将其当作参数的这些值(意味着它不引用) 基本上,它将巨大的数据集加载到内存中并进行处理。输出的写操作委托给一个子进程(它实际上写到多个文件中,这需要很多时间)。因此,每次处理一个数据项时,它都会通过res_queue发送到子流程,然后该子流程根据需要将结果写入文件中。 子流程不需要访问,读取或修改以任何方式加载的数据。