Heim >Backend-Entwicklung >PHP-Tutorial >求解答 关于Redis 多个连接、何时关闭 的问题

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

WBOY
WBOYOriginal
2016-06-06 20:13:351365Durchsuche

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn