有熟悉redis数据库的吗
请教个问题,如果数据一部分希望持久化,一部分不希望持久化,是不是只能建2个数据库解决?看了下【save “”】好像是对整个数据库生效,不能对部分数据生效?
能否给予select 的数据库生效,比如select 0这个子数据库持久化,而select 1这个子数据库不持久化?
本帖最后由 roamer 于 2021-3-16 16:11 编辑
不太清楚场景,简单来说,你完全可以把整个对象存在redis里面,然后有update/delete操作的时候,evict redis内数据, 选择需要落盘的字段保存, 然后设置新的redis缓存
------------
看错了,save确实只能对整个redis实例生效,你只能搭两个redis实例。不过如果部分数据不想持久,设置ttl不行吗,这样只有非常频繁被读取的那部分数据会落盘。
不能 搭建两个redis 解决 持久化为啥要选redis?
—— 来自 Xiaomi Mi 10, Android 11上的 S1Next-鹅版 v2.4.4.1 redis持久化是针对宕机或者重启服务的。
—— 来自 deltainno DT2002C, Android 10上的 S1Next-鹅版 v2.4.4 本帖最后由 Fury 于 2021-3-17 19:41 编辑
我们就把redis当cache或者是可丢失的队列用。需要持久化的重要的,上mongo或者dynamodb。曾经把redis用的16g内存都吃满了到处报500的路过 SAVE 会阻塞整个 Redis 完成持久化,期间不能读写。
BGSAVE 会 fork 一个子进程在后台进行持久化,持久化期间可以读写,但是持久化期间的更改不会保存。
如果要更精细化的持久化,可以考虑使用类似 pika 这种兼容 Redis 的接口,但是底层支持持久化的数据库。
兼容 Redis 接口的数据库还挺多的
页:
[1]