在 mod_perl 下创建持久 memcached 连接的最佳方法是什么?

发布于 2024-12-19 01:57:27 字数 110 浏览 0 评论 0原文

我知道有一个像 Apache::DBI 这样的模块,它允许在 mod_perl 下使用与数据库的持久连接。

有没有一种简单的方法可以制作这样的东西?您能推荐任何 memcached 池包吗?

I know there is a module like Apache::DBI which allows to use persistent connections to database under mod_perl.

Is there an easy way to make something like this? Could you recommend any memcached pooling package?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

渔村楼浪 2024-12-26 01:57:27

如果您查看 Apache::DBI 的源代码,您会发现它只是将数据库句柄放在包顶部的词法作用域中。对于 Memcached 来说这很容易做到。创建一个新包,在顶部添加 my $memcached; ,然后使用 init() 方法建立连接并将其保存在该词法中。然后使用 getConnection() 方法来获取代码中的连接。该方法需要检查连接是否仍然存在,并在需要时重新连接。

最后,设置一个 PerlChildInitHandler 来调用 init() (请参阅 Apache::DBI connect_on_init())。

If you look at Apache::DBI's source code, you'll see that it just puts the database handle in a lexical scoped at the top of the package. It's easy enough to do this for Memcached. Make a new package, with a my $memcached; at the top, then have an init() method make the connection and save it in that lexical. Then have a getConnection() method to fetch the connection in your code. That method needs to check if the connection is still alive and reconnect if needed.

Lastly, setup a PerlChildInitHandler to call init() (see Apache::DBI connect_on_init()).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文