为了账号安全,请及时绑定邮箱和手机立即绑定

如果使用了swoole,请问还需要使用redis吗?

如果使用了swoole,请问还需要使用redis吗?

PHP
UYOU 2019-03-11 21:37:55
比如我有一个变量,需要存储在线用户列表,我直接在swoole server文件中声明一个全局变量,以二维数组的形式存储每一个在线用户的信息,swoole本身就是常驻内存的,这种情况下,我还有必用redis存储这个变量吗?
查看完整描述

2 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

看需求,存储在内存中的优势是没有网络损耗,读取速度快,但是服务重启就没有了,而且不能跨服务共享数据。如果数据只是作为运行状态的一部分,那是没有必要用redis,如果对数据安全的要求较高,而且需要多个服务可以读取,那么还是用redis方便。

查看完整回答
反对 回复 2019-03-11
?
GCT1015

TA贡献1827条经验 获得超4个赞

你这个需求有两种情况:

  1. swoole server只开启起了一个进程,你用全局变量没有问题。但是要注意协程的影响。

  2. swoole server开启起了多个进程,全局表里只能表示当前进程的用户数量,不能表示全部的用户,需要借助第三方 如redis.

你可以试试 one 框架,包含有进程间共享数据,原子操作 不用考虑多进程 协程问题。


查看完整回答
反对 回复 2019-03-11
  • 2 回答
  • 0 关注
  • 449 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号