php - 如何指示 predis 在出现错误时继续

标签 php redis predis

如果 Redis 失败,是否可以指示 php predis ( https://github.com/nrk/predis ) 继续运行而不死掉?

我有Redis来处理应用程序缓存,但是应用程序可以在没有缓存的情况下运行,它只是对数据库的影响更大。我更喜欢回退到数据库,然后让应用程序死亡。我找不到一种方法来指示 predis 在失败时继续。

我认为将连接限制设置为大约 5 秒,如果无法连接到 Redis,应用程序应该继续。

这可能吗?

Fatal error: Uncaught Predis\Connection\ConnectionException: Operation timed out [tcp://128.0.0.1:6379]

最佳答案

您可以捕获连接异常并回退到数据库。 示例:

try {
    return $predis->get('foobar');
} catch(\Predis\Connection\ConnectionException $ex) {
    // fallback to database call
}

为了使代码更清晰,请将数据库/redis 调用包装在一个新类中,该类抽象出实际连接,这样您的调用代码就不需要关心使用了哪个数据源。

关于php - 如何指示 predis 在出现错误时继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58613208/

相关文章:

ruby - 生产服务器上的 Sidekiq 在运行时出错

optimization - Lua中两个表的区别

Redis 与 RocksDB

php - 在 Lumen 中使用 PRedis 库时,Redis 集群的集群槽池中没有连接

php - Predis:两种集群策略的优缺点

PHP 库 : Calculate a bounding box for a given lat/lng location

php - 按顺序随机回显数据库列

php - 如何使用 Codeception/Selenium 将某些东西向上拖动一定数量的像素

php - 如何将codeigniter View 文件gmap存储到redis中,让 View 显示更快?

PHP/MySQL 无法弄清楚如何根据我当前的表对数据进行分组和打印