- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我的用例:我正在使用 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/当达到 maxmemory 时设置逐出策略。当达到最大内存时,这将主动删除 redis 键。3/将 hz(频率)设置为更高的值。这将启动更多每秒清除过期 key 的任务。1/似乎不可行。对于 2/& 3/基于当前 30 分钟的缓存计时器,并给定插入率,我们可以使用最大内存 12*1024*1024最大内存样本 10maxmemory-policy volatile-ttl赫兹100
但是使用 2 意味着 redis 将始终执行键的删除然后插入,正如我假设在我的情况下内存将始终等于 12 GB
那么使用这种策略好吗,还是我们应该在 Redis 上编写自己的 key 回收服务?
最佳答案
您是否在使用 Azure Redis 缓存?如果是,你可以考虑使用集群。集群中最多可以有 10 个分片,这将帮助您分担所有不同编号的负载。用于不同操作的键。
关于caching - 有没有其他方法可以在 Redis 中使用过期的 ttl 积极地逐出 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44304675/
谁能解释当应用程序通过 802.11 WiFi 网络发送 UDP 单播数据报时它是如何工作的?假设非阻塞 UDP 套接字。具体而言,假设 802.11n 或 802.11ac 以及相当新的 Linux
我是一名优秀的程序员,十分优秀!