Maison >développement back-end >tutoriel php >求解答 关于Redis 多个连接、何时关闭 的问题

求解答 关于Redis 多个连接、何时关闭 的问题

WBOY
WBOYoriginal
2016-06-06 20:13:351365parcourir

刚接触redis不久,看了网上的一些资料有很多地方还没有搞明白,现在有两个问题有点疑惑,希望大家能帮助解答一下。

1.关于Redis多连接的问题。
(1)多连接是指:不同项目之间与Redis建立的连接? 还是 同一个项目可以与Redis建立多个连
接?
(2)在一个项目中需要保存 用户信息、设备信息。 那么用不用建立2个连接,一个用来保存用户信息,一个用来保存设备信息,还是只建立一个连接即可? 哪一种方式好呢? 现在我是只建立一个连接,存储所有的数据。

2.关于Redis合适关闭的问题。
场景:Server与Client建立Socket长连接,Server收到Client的数据,先保存到Redis里面,最后在存储到MySQL。
问题:
(1)那么问题来了,我是每次往Redis里面存数据都重新打开,操作完后再关闭。还是一直开着就行,长时间的一直连接,不用关闭,只在程序异常或者退出时再关闭? 个人认为应该是一直保持着连接吧,因为要频繁的IO,所以频繁的连接、关闭不适合。
(2)合理的方式应该是何时关闭Redis连接呢?

回复内容:

刚接触redis不久,看了网上的一些资料有很多地方还没有搞明白,现在有两个问题有点疑惑,希望大家能帮助解答一下。

1.关于Redis多连接的问题。
(1)多连接是指:不同项目之间与Redis建立的连接? 还是 同一个项目可以与Redis建立多个连
接?
(2)在一个项目中需要保存 用户信息、设备信息。 那么用不用建立2个连接,一个用来保存用户信息,一个用来保存设备信息,还是只建立一个连接即可? 哪一种方式好呢? 现在我是只建立一个连接,存储所有的数据。

2.关于Redis合适关闭的问题。
场景:Server与Client建立Socket长连接,Server收到Client的数据,先保存到Redis里面,最后在存储到MySQL。
问题:
(1)那么问题来了,我是每次往Redis里面存数据都重新打开,操作完后再关闭。还是一直开着就行,长时间的一直连接,不用关闭,只在程序异常或者退出时再关闭? 个人认为应该是一直保持着连接吧,因为要频繁的IO,所以频繁的连接、关闭不适合。
(2)合理的方式应该是何时关闭Redis连接呢?

我看你还有一个标签是PHP,不知道你是不是在PHP下使用Redis的,如果是,我想上面的问题都不应该是你该考虑的问题,应该Redis扩展已经帮你设置好了最佳的解决方案。

逐个解决你说的问题:

  1. 多链接不是你提的两种情况,而是指一个项目与一个Redis建立多个链接,应该服务器大多是并发处理的,如果只开一个链接就会形成多个请求排队等待链接的情况,所以目前都会才有多链接(连接池)的设计。

  2. 不要把每个链接绑定到实际需求中,这种算耦合。并且现在Redis库设计时绝大多数都实现了连接池,你在使用时链接对你来说已经算是不可见的,你就没必要再操这份心做干下层驱动所干的事情了。

  3. 正如你说的,最佳的方式是一直保持链接,也就是常说的长链接,而块驱动也已经帮你写好了,你所使用的默认就是长链接,所以并不需要再去处理何时关闭连接的问题了。

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn