10

redis 怎样读回已过期的数据?

 2 years ago
source link: https://www.v2ex.com/t/796132
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
redis 怎样读回已过期的数据?

V2EX  ›  Redis

redis 怎样读回已过期的数据?

  ptrees · 1 天前 · 1380 次点击

现在做一个需求,某个数据量比较大而且存在频繁读写,所以我想放到 redis 里面,但这样又怕太占内存,所以我想过期时间设定 2 小时,要用的时候再读回来. 现在的问题是这个"读回来"怎么实现,要么是 redis 本身就有相应的机制,要么在数据将要过期时写入数据库,但目前搜索了半天都没看到有相关的用法,是不是我这种用法本身不对呢?有没有更好的解决办法?

14 条回复    2021-08-17 17:30:40 +08:00

sadfQED2

sadfQED2   1 天前 via Android

你这个用法本来就不对。

另外数据量比较大是多大,1T 内存的 redis 存 24 小时够不够。另外,读写频繁是多频繁,nvme 固态的 db,堆机器能不能解决

wy315700

wy315700   1 天前

试试看类 redis 的数据库吧 pika tendis 之类

sutra

sutra   1 天前   ❤️ 1

这不就是 cache 机制吗?

yinusxxxx

yinusxxxx   1 天前

感觉你的描述就很冲突,频繁读写就让他留在内存好了,就算换出了,马上又会被读回来,何必

mmdsun

mmdsun   1 天前 via Android

“读回来”???没太懂。

缓存没命中,就从数据库查询,然后再塞到 Redis 里,Redis 设置 2 小时过期。是这个意思不。如果你是这种参考 Cache Pattern 模式

或者你说的是 Redis 热冷数据那种?热数据放内存,冷数据存磁盘?? 这种可以看下 Tendis,我记得有这个功能,而且兼容 Redis 协议

ptrees

ptrees   1 天前

@mmdsun 因为这个数据读取写入都比较频繁, 可以理解成 1;1, 如果每次写入都存数据库感觉用缓存意义就不大了,所以打算只写 redis,然后隔一段时间再存数据库,不知道有没有这种

IanPeverell

IanPeverell   1 天前

那你可能需要的不是 redis 而是 rocksdb

pengtdyd

pengtdyd   23 小时 47 分钟前

怎么说呢,不是批评你,用一个技术不要自己想当然的用,多看看官方文档,先弄清楚他是干嘛的,解决了什么问题,然后再用,不要鸡同鸭讲

lscho

lscho   23 小时 38 分钟前   ❤️ 1

@ptrees 你这种用法会涉及到 redis 的一致性问题,比如你存到了 redis,但是还没进数据库的时候,redis 挂了。这时候你数据库就没有保存最新的数据。

为了解决这个问题,你要引入 redis 持久化,但是持久化的话,就没必要写入数据库了。

ptrees

ptrees   23 小时 10 分钟前

感谢大家的回复,目前看下来感觉直接用 redis 持久化就行.
这个数据其实是有过期时间的,过期了就不允许写入了,我想这个时候存到 db 里然后把缓存删掉就行了.
原先可能是想复杂了,编程小白大家轻喷哈

kingfalse

kingfalse   10 小时 53 分钟前 via Android   ❤️ 1

好家伙,妹子养舔狗都不敢这样

encro

encro   9 小时 16 分钟前

一般程序实现:

value = getValue(key)
if(!value){
value = ....
setValue(key,value,expire)
}
return value

arbit

arbit   1 小时 36 分钟前

@kingfalse #12 老哥这比喻太生动了吧😂

关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2542 人在线   最高记录 5497   ·  

创意工作者们的社区

World is powered by solitude

VERSION: 3.9.8.5 · 24ms · UTC 11:06 · PVG 19:06 · LAX 04:06 · JFK 07:06
♥ Do have faith in what you're doing.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK