go - 使用redis作为缓存,TTL和Mysql中每个表的字节大小限制

标签 go caching redis

我想将 mysql 表(键:id,值:序列化字节中的行)缓存到 redis 中。缓存必须支持每个表的 TTL 和大小限制(以字节为单位)。

例如:表user可以使用100MB缓存,表device可以使用100MB缓存。

我尝试在应用层实现 TTL 和大小限制,但管理和监控 key 过期的开销太大。

有谁知道有什么想法或开源的吗?

最佳答案

我不能说去,但是 基本上,Redis 有一个 TTL 命令,允许您自动从缓存中删除键值对。以最简单的形式,您可以:

redis> SET table1:id1 "Hello"
"OK"
redis> EXPIRE table1:id1 10 // remove the line after 10 seconds
(integer) 1
redis> TTL table1:id1  // if you want to query
10

关于go - 使用redis作为缓存,TTL和Mysql中每个表的字节大小限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57551810/

相关文章:

go - 如何在 Go 中获取函数的名称?

linux - 如何在 Linux 中操作页面缓存?

redis - Redis 数据 volatile ?

go - 如何在不访问 "go get"的情况下构建 Go 项目?

go - 为什么类型转换在编译时会失败?

无互斥

laravel - 将 session 从 memcached 迁移到 redis,无需在 laravel 中注销用户

css - 我需要强制刷新 Thesis Framework 中的 custom.css

java - 用于数据传输对象 (DTO) 投影的 Hibernate 二级缓存

asp.net-mvc - 如何使自定义 session 提供程序与 ASP.NET 5 一起工作?专门使用 Redis 进行 session