草庐IT

rr-cache

全部标签

caching - 将大数据写入 Redis 缓存

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭8天前。Improvethisquestion我必须替换遗留系统上的缓存。我决定尝试使用Redis。我在Windows2012机器上运行了用于x64的Redisv3.0.504。它是与Web应用程序相同的服务器。这些是机器上运行的仅有的2个应用程序。服务器有20GB的内存。应用程序尝试一次将3900个对象写入缓存。旧缓存能够处理此问题,但现在失

caching - 有没有其他方法可以在 Redis 中使用过期的 ttl 积极地逐出 key

我的用例:我正在使用Redis来存储大量数据。在1秒内,我在30分钟内用ttl在redis中写了大约24k个key,我希望在ttl过期后删除这些key。当前redis驱逐key的实现是它在任务中工作,每个任务选择20个随secret钥并查看key是否已过期ttl然后删除这些key并且redis建议使用不超过100个这样的任务。因此,如果我选择hz(任务数量为100),那么Redis将能够以max@2000键/秒的速度清除tke键,这对我来说太少了,因为我的插入率非常高,最终导致内存不足异常吃饱了。我的替代方案是:1/命中随机键,或者我们知道已经过期的键,这将在Redis中启动删除2/当

caching - docker run long time make 缓存连接超时

我用docker-compose构建了我的应用程序,一个容器是使用mariadb镜像的数据库,一个运行Laravel的php(我为我的应用程序安装了php-memcached或php-redis扩展),一个基于redisdocker镜像构建的缓存容器。起初一切顺利,但运行2或3天后,我得到了php异常:连接超时[tcp://redis:6379];我在主机服务器上监控cpu和内存和网络使用我自己安装的zabbix,但是我得到了这些错误:监控CPU监控内存我将缓存容器更改为memcached,然后2或3天发生了同样的事情,我发现解决这个问题的唯一方法是重新启动系统,它可以再运行2或3天,

caching - 使用 NHibernate.Caches.Redis 时,锁的超时值应该是多少?

我们目前正在使用NHibernate.Caches.Redis在获取数据时使用多个锁的项目。我们注意到默认的锁超时时间是30秒,这看起来等待获取锁的时间很长,而且当锁失败时我们在日志中得到很多超时,所以我们正在考虑降低该值...但我们不确定是什么。是否有人能够就什么是好的超时值以及降低锁定超时值对性能的潜在副作用提供一些建议? 最佳答案 所以上面的问题可能有点宽泛,但在这里张贴以供后代使用,希望它能在将来帮助某人。我们在NHibernate缓存中获得了很多锁定,这导致了后续超时-因此出现了上述问题。为了解决这个问题,我们禁用了Que

caching - Redis 的优雅失效

我正在尝试找到像Varnish这样的产品,它可以让我有可能处理缓存上的grafecul失效,这基本上是保证客户端缓存时间的能力,因为当键值无效或过期时,不是客户端自己从源头获取内容需要等待很长时间,但总是由缓存系统单独为客户端做这件事,同时客户端只获取缓存内容,即使它是无效的。场景示例:缓存值有效的场景。1)客户端->缓存有效->缓存对象缓存值无效的场景。1)客户端->缓存无效->旧缓存对象2)缓存系统->origin->替换旧的缓存对象有什么方法可以确保客户端使用Redis的缓存响应时间来执行此预取? 最佳答案 您需要处理使键值无

caching - 将redis用于树数据结构

我需要为基于树的键值开发一个缓存系统(非常类似于Windows注册表编辑器)。因为缓存键是字符串,表示树中到值的路径,可以是原始类型(int、string、bool、double等)或自身的子树。例如:key=root\x\y\z\w,value=thewholesubtreeunderwkey=root\x\y\z\w\t,value=integer我考虑过使用Redis作为简单的缓存实现,但是天真的键值会忽略树层次结构的要点。此外,以这种天真的方式,猜测我已经在缓存中了key=root\x\y,value=thewholesubtreeundery我正在寻找key=root\x\y

caching - Redis中的 'node'到底是什么

我目前正在阅读有关Redis的资料,并试图更好地理解“节点”是什么,说明Redis的工作原理。我认为它与端点相同是否正确? 最佳答案 在Redis的上下文中,节点是运行一个或多个redis-server进程的服务器。端点是一个网络地址,您可以通过它访问一个或多个此类进程,具体取决于Redis的集群方式。使用开源Redis集群时,端点是任何进程-即节点的地址和进程监听的端口。Redis客户端库使用该协议(protocol)询问有关集群其他成员的集群redis-server进程(同样,进程监听节点上的端口),因此它们可以相应地建立与其他

node.js - 设计模式 : Combining http requests with pluggable Redis caching mechanism

对于API工作,我倾向于通过围绕Redisget/set函数包装http请求来缓存第3方API响应,例如:importhttpfrom'request-promise-native';importredisfrom'redis';importbluebirdfrom'bluebird';bluebird.promisifyAll(redis.RedisClient.prototype);bluebird.promisifyAll(redis.Multi.prototype);constredisClient=redis.createClient();constgetData=async

java - Spring Cache 中的@Cacheable 在缓存外的redis 中存储值。我如何将它放入redis的缓存中?

@Override@Cacheable("stu")publicEmployeeEntitygetEmployee(Integerid){returnemployeeDAO.findById(id).get();}以上代码将key以“stu::7”格式保存在redis中这里“stu”是缓存的名称,7是键,但它将缓存名称和id作为一个键存储。但我想以这种格式存储在redisSTU->7Stu应该是缓存的名称,里面是所有的键值对。 最佳答案 您可以将自定义key生成器设置为@Cacheable注释,您可以根据需要对其进行自定义:http

caching - 需要通过多键查找持久保存在内存缓存中

我们有一个需求,我们需要搜索具有多个键的键,并且正在寻找多个索引。例如:交易数据包含以下参数:日期股票价格数量帐号我们将把每笔交易存储为一个以Stock为键的列表。这将使我们能够查询给定股票的所有交易。然而,我们也会有查询,比如一个账户中所有交易的列表。我们希望使用相同的缓存来获取此查询而不是新的缓存。要求是内存缓存(java),因为延迟要求非常低。此外,我们需要一个持久缓存,以便在应用程序重新启动时重新填充缓存。如果有任何好的解决方案,请告诉我,因为持久缓存的唯一方法似乎是分布式缓存。 最佳答案 确保查询速度更快的一种方法是创建一