我们正在尝试通过 Redis 实现缓存,我了解到它会将数据存储到自己格式的 RDB 文件中。但是我们已经有其他客户端使用的 Oracle 持久性。因此,我们不想将数据存储在 RDB 文件中,而是希望将数据持久保存在 Oracle DB 中。
最佳答案
在这种情况下禁用文件写入,并将Redis用作纯内存缓存。 为此,只需注释 redis.conf 中的所有“保存”行即可。
在伪代码中,读取一个值应该像这样完成:
result = get value from redis
if(result is null)
{
result = get value from Oracle
store result in redis
}
return result
更新:在评论交流后这里是一个替代方案
创建一个假的redis slave,它将连接到Redis实例,然后重现对Oracle数据库的写操作。查看 redis 文档以了解复制的工作原理。
但这不是一件小事。您必须解释 Redis 命令并应用相应的 SQL 命令,并在 Oracle 数据库出现故障时处理重新同步。性能将取决于写操作的数量。如果数量太多,Oracle 数据库将无法处理它们。因此,我再次重申,我认为这不是推荐的架构。
关于database-design - 我可以在 Oracle 数据库中持久化 redis 数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22478274/