b0207191 发表于 2021-3-15 22:47

有熟悉redis数据库的吗

请教个问题,如果数据一部分希望持久化,一部分不希望持久化,是不是只能建2个数据库解决?
看了下【save “”】好像是对整个数据库生效,不能对部分数据生效?
能否给予select 的数据库生效,比如select 0这个子数据库持久化,而select 1这个子数据库不持久化?

roamer 发表于 2021-3-16 02:25

本帖最后由 roamer 于 2021-3-16 16:11 编辑

不太清楚场景,简单来说,你完全可以把整个对象存在redis里面,然后有update/delete操作的时候,evict redis内数据, 选择需要落盘的字段保存, 然后设置新的redis缓存
------------

看错了,save确实只能对整个redis实例生效,你只能搭两个redis实例。不过如果部分数据不想持久,设置ttl不行吗,这样只有非常频繁被读取的那部分数据会落盘。

rvunholy 发表于 2021-3-16 12:13

不能 搭建两个redis 解决

宇宙之心 发表于 2021-3-16 17:09

持久化为啥要选redis?

—— 来自 Xiaomi Mi 10, Android 11上的 S1Next-鹅版 v2.4.4.1

米水 发表于 2021-3-17 18:57

redis持久化是针对宕机或者重启服务的。

—— 来自 deltainno DT2002C, Android 10上的 S1Next-鹅版 v2.4.4

Fury 发表于 2021-3-17 19:40

本帖最后由 Fury 于 2021-3-17 19:41 编辑

我们就把redis当cache或者是可丢失的队列用。需要持久化的重要的,上mongo或者dynamodb。曾经把redis用的16g内存都吃满了到处报500的路过

小野賢章 发表于 2021-3-17 19:42

SAVE 会阻塞整个 Redis 完成持久化,期间不能读写。

BGSAVE 会 fork 一个子进程在后台进行持久化,持久化期间可以读写,但是持久化期间的更改不会保存。

如果要更精细化的持久化,可以考虑使用类似 pika 这种兼容 Redis 的接口,但是底层支持持久化的数据库。

兼容 Redis 接口的数据库还挺多的
页: [1]
查看完整版本: 有熟悉redis数据库的吗