草庐IT

functools_lru_cache

全部标签

caching - 我应该使用 Redis 来缓存查询的响应吗?

我在ParseServer(Ubuntu)上有一个社交应用程序,我需要在服务器端缓存用户的内容,例如他们的主要提要和聊天,以加快速度。Redis适合那种缓存吗?如果没有,您会推荐什么?另外,我在考虑一种方法来最小化我的数据库读取,我想到了一个最新缓存的想法,我将在新的帖子保存时使用triggers并在那里,我将刷新我的缓存。这是一个好的做法吗? 最佳答案 Redis绝对可以用来缓存东西。Twitter使用(或至少曾经使用过)Redis来缓存时间线。Thisblogpost可以让您更深入地了解他们如何使用它。关于为什么选择Redis的

caching - redis 是否在达到最大内存限制时驱逐键或子键?

在达到内存限制时,redis会逐出键或子键(在映射的情况下)吗? 最佳答案 默认情况下,没有。您需要在redis.conf文件中指定逐出策略。这里有一些关于redis驱逐的有用信息:https://redis.io/topics/lru-cache 关于caching-redis是否在达到最大内存限制时驱逐键或子键?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/52212788

caching - Redis StackExchange 存储 500k 类

我试图用Redis代替现有的缓存系统,该系统主要由Dictionary组成.我有大约500k个对象并且正在使用MsgPackObjectSerializer。我在尝试检索整个数据集时遇到了性能问题。获取所有key需要几秒钟。varkeys=cacheClient.SearchKeys("ID:*").ToList();并以这种方式使用GetAll方法:cacheClient.GetAll(keys).Values;即使配置如下也会导致超时:varconfigOptions=newConfigurationOptions();configOptions.EndPoints.Add("lo

python - Redis模式: how would you cache free/occupied ressource with expiration?

这是我这周正在处理的问题,但我有点碰壁了。假设我有100个资源可用于完成一些快速任务。我想为客户做的,尽可能快:获取第一个可用资源将其标记为已占用使用它将其标记为免费。对于这种东西,我觉得使用sortedset是最好的。但是因为我的客户端不是很安全并且有时会在它运行的代码中间失败我真的想在我将资源标记为已占用时设置过期时间这样资源就不能永远处于占用状态。这听起来像是一个非常普遍的问题,我敢肯定有很多关于如何使用Redis修复它的文献,但我找不到任何文献。我发现了很多“维护全局排行榜”这类问题的模式和示例,但这些示例中没有一个涉及key过期。我目前有这样的解决方案:forressourc

php - 具有 LRU 过期的内存缓存

我正在为我的PHP驱动的网站寻找内存缓存。它不是高流量网站,我只是想缓存数据和某些页面的一部分以提高性能。数据大小从几个字节到几个kB不等。我目前正在使用xCache,没有遇到任何问题。转用memcached好还是redis好?有没有更好的选择? 最佳答案 如果您没有任何明显的问题,为什么现在要切换?Memcached或redis可能更好,但如果您现在不需要它们,最好还是留下它们。只要您的缓存策略是合理的并且缓存接口(interface)是抽象的,您就应该能够在以后真正觉得需要切换到可扩展缓存时添加它们。此外,PHP中的xCache

node.js - 防止为 connect-redis session 设置 TTL 以允许 allkeys-lru 用于内存策略

我已经使用connect-redis和redis包设置了一个非常简单的RedisStore。我有一个专门用于我的session存储的盒子,我想使用allkeys-lrumaxmemory策略而不是TTL进行逐出。似乎connect-redis的存储不允许设置TTL(我在创建存储时尝试在选项对象中使用-1,看起来像将TTL设置为0)。有关如何执行此操作的任何建议?另外,有人明白为什么这可能是一种不好的做法吗? 最佳答案 查看relevantsourcecode,似乎connect-redis不会让您在key未过期的情况下使用它。在我看

caching - Redis 可以将磁盘用作 LRU 缓存的一部分吗?

我们需要一个分布式LRU缓存,但它可以同时使用内存和磁盘。我们有一个大型数据集,它永久存储在磁盘上。我们从该数据集创建其他计算数据集,但仅在客户需要时才创建。由于这些辅助数据集源自持久性数据,因此我们永远不需要永久保存这些派生数据。我认为Redis可以将磁盘用作二级LRU缓存,但一直找不到任何指向这一点的文档。Redis似乎只使用磁盘来持久化整个缓存。我设想我们能够使用一堆Redis实例进行横向扩展。如果Redis做不到,是否有其他系统可以做到? 最佳答案 如果数据不适合内存,操作系统可以将其换出到磁盘。这称为虚拟内存。在这里您可以

caching - 如何在运行时在 Application.conf 中添加条目?

如何在运行时添加单独的redis缓存实例?通过这种方式可以手动添加多个redis缓存实例应用程序配置文件:redis.uri="redis://192.168.3.170:6000"#disabledefaultPlayframeworkcachepluginplay.modules.disabled=["play.api.cache.EhCacheModule"]#enablerediscachemodule#play.modules.enabled=["play.api.cache.redis.RedisCacheModule"]#Multiplerediscachesplay.c

java - 是否可以自定义 Spring Cache 抽象使用的序列化?

我有一个使用Redis进行缓存的Java网络服务。最初我创建了一个直接访问Redisson客户端的CacheService以处理缓存。我最近重构了缓存处理以使用SpringCache抽象,这使代码更清晰并鼓励模块化设计。不幸的是,Spring使用Jackson来序列化/反序列化缓存对象,由于类型信息存储在JSON中,导致缓存值比以前大得多。这导致从缓存读取的响应时间增加到NotAcceptable程度。有什么办法可以自定义Spring序列化和反序列化缓存内容的方式吗?我想用我自己的逻辑替换它,但在文档中看不到任何内容。如果可能的话,我宁愿不必推出自己的AspectJ缓存实现。

caching - 将 Redis 用于 Symfony/var/cache 和/var/logs

我在Homestead中使用PHP7.1运行Symfony3.*实例,最近将缓存和日志目录从我的主文件夹中移开,因为NFS同步变得疯狂并且大大降低了整个安装的性能。我想知道我是否可以通过配置或解决方法以某种方式将通常转到./var/的日志记录和缓存完全分派(dispatch)给Redis? 最佳答案 您可以修改日志记录以将其关闭或关闭-或者选择不将其写入文件,而是将其发送到Redis或其他来源。Monolog可以使用许多可选目标,通常带有支持库和配置。虽然缓存文件并非设计用于写入其他地方。因为它们被写入磁盘,所以它们可以被OpCac