- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在开发一个 Java REST API,它使用来自 postgreSQL 数据库的客户端数据。
数字:.一开始约有600个客户.他们中的一些人每隔几秒就做一次请求
因为客户按请求付费,我们需要控制他们成功请求的数量是否达到了他们的限制,并且在每次请求性能不好之后查询 postgresql 数据(更新'hitsCounter'字段的值),我们是考虑用redis实现一个缓存系统。
想法:客户端发出第一个请求后,我们从 postgresql 检索他的数据并将其存储到 redis 缓存中。然后使用此缓存数据,例如递增“hitsCounter”键值,直到客户端停止执行请求。同时,后台进程每隔几分钟将数据从 redis 缓存保存到 db 表,所以最后我们将更新的数据返回到 postgresql,我们可以在将来处理它们。
我认为它明显提高了性能,但我不确定这个“后台进程”。一个选项是检查缓存元素的 TTL,如果它小于某个值(这意味着客户端已完成请求),则保留数据。
我很想听听对此的一些意见。这是一个好主意吗?你知道一些更好的选择吗?
最佳答案
非常合理的想法,但您没有提到您所做的任何测量。您的目标硬件在您的目标事务级别上的瓶颈是什么?不知道这一点,就不能说。
也许您可以使用未记录的表。只需在每个查询中插入一行,然后每 5 分钟汇总一次,清除旧数据。再一次,使用热更新,假设 75% 的填充因子可能更新更有效。我不知道(你也不知道)我们还没有测量过它。
还不够吗?将其粘贴在 ssd 上自己的表空间上。
还不够吗?将其粘贴在自己的虚拟机/机器上。
还不够吗?只需将这些该死的东西写入每个前端盒上的平面文件,然后每分钟将数据批处理一次存入数据库。
此外 - 他们为每次查询支付多少费用?如果电源出现故障并且您丢失了五秒钟的查询日志,您会在乎吗?您是否需要能够为每个查询生成包含原始详细信息和时间戳的收据?
关于java - Web 服务架构 : Redis (as cache) & PostgreSQL for persistence,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16234221/
我有一个关于 Redis Pubsub 的练习,如下所示: 如果发布者发布消息但订阅者没有收到服务器崩溃。订阅者如何在重启服务器时收到该消息? 请帮帮我,谢谢! 最佳答案 在这种情况下,消息将永远消失
我们正在使用 Service Stack 的 RedisClient 的 BlockingDequeue 来保存一些数据,直到它可以被处理。调用代码看起来像 using (var client =
我有一个 Redis 服务器和多个 Redis 客户端。每个 Redis 客户端都是一个 WebSocket+HTTP 服务器,其中包括管理 WebSocket 连接。这些 WebSocket+HTT
我有多个 Redis 实例。我使用不同的端口创建了一个集群。现在我想将数据从预先存在的 redis 实例传输到集群。我知道如何将数据从一个实例传输到集群,但是当实例多于一个时,我无法做到这一点。 最佳
配置:三个redis集群分区,跨三组一主一从。当 Master 宕机时,Lettuce 会立即检测到中断并开始重试。但是,Lettuce 没有检测到关联的 slave 已经将自己提升为 master
我想根据从指定集合中检索这些键来删除 Redis 键(及其数据集),例如: HMSET id:1 password 123 category milk HMSET id:2 password 456
我正在编写一个机器人(其中包含要禁用的命令列表),用于监视 Redis。它通过执行禁用命令,例如 (rename-command ZADD "")当我重新启动我的机器人时,如果要禁用的命令列表发生变化
我的任务是为大量听众使用发布/订阅。这是来自 docs 的订阅的简化示例: r = redis.StrictRedis(...) p = r.pubsub() p.subscribe('my-firs
我一直在阅读有关使用 Redis 哨兵进行故障转移的内容。我打算有1个master+1个slave,如果master宕机超过1分钟,就把slave变成master。我知道这在 Sentinel 中是
与仅使用常规 Redis 和创建分片相比,使用 Redis 集群有哪些优势? 在我看来,Redis Cluster 更注重数据安全(让主从架构解决故障)。 最佳答案 我认为当您需要在不丢失任何数据的情
由于 Redis 以被动和主动方式使 key 过期, 有没有办法得到一个 key ,即使它的过期时间已过 (但 在 Redis 中仍然存在 )? 最佳答案 DEBUG OBJECT myKey 将返回
我想用redis lua来实现monitor命令,而不是redis-cli monitor。但我不知道怎么办。 redis.call('monitor') 不起作用。 最佳答案 您不能从 Redis
我读过 https://github.com/redisson/redisson 我发现有几个 Redis 复制设置(包括对 AWS ElastiCache 和 Azure Redis 缓存的支持)
Microsoft.AspNet.SignalR.Redis 和 StackExchange.Redis.Extensions.Core 在同一个项目中使用。前者需要StackExchange.Red
1. 认识 Redis Redis(Remote Dictionary Server)远程词典服务器,是一个基于内存的键值对型 NoSQL 数据库。 特征: 键值(key-value)型,value
1. Redis 数据结构介绍 Redis 是一个 key-value 的数据库,key 一般是 String 类型,但 value 类型多种多样,下面就举了几个例子: value 类型 示例 Str
1. 什么是缓存 缓存(Cache) 就是数据交换的缓冲区,是存贮数据的临时地方,一般读写性能较高。 缓存的作用: 降低后端负载 提高读写效率,降低响应时间 缓存的成本: 数据一致性成本 代码维护成本
我有一份记录 list 。对于我的每条记录,我都需要进行一些繁重的计算,因为我要在Redis中创建反向索引。为了达到到达记录,需要在管道中执行多个redis命令(sadd为100 s + set为1
我有一个三节点Redis和3节点哨兵,一切正常,所有主服务器和从属服务器都经过验证,并且哨兵配置文件已与所有Redis和哨兵节点一起更新,但是问题是当Redis主服务器关闭并且哨兵希望选举失败者时再次
我正在尝试计算Redis中存储的消息之间的响应时间。但是我不知道该怎么做。 首先,我必须像这样存储chat_messages的时间流 ZADD conversation:CONVERSATION_ID
我是一名优秀的程序员,十分优秀!