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

发布于 2022-09-11 17:56:23 字数 117 浏览 23 评论 0

比如我有一个变量,需要存储在线用户列表,我直接在swoole server文件中声明一个全局变量,以二维数组的形式存储每一个在线用户的信息,swoole本身就是常驻内存的,这种情况下,我还有必用redis存储这个变量吗?

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

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

发布评论

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

评论(5

放手` 2022-09-18 17:56:23

建议用redis,存内存表除了速度快一点,没啥优势

橙幽之幻 2022-09-18 17:56:23

用redis 还个好处,其他服务器共享数据了,可以存.取

━╋う一瞬間旳綻放 2022-09-18 17:56:23

你这个需求有两种情况:

  1. swoole server只开启起了一个进程,你用全局变量没有问题。但是要注意协程的影响。
  2. swoole server开启起了多个进程,全局表里只能表示当前进程的用户数量,不能表示全部的用户,需要借助第三方 如redis.

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

无声无音无过去 2022-09-18 17:56:23

这个还是要看你具体需求的。如果你需要向外共享用户的状态,那还是得redis.

海的爱人是光 2022-09-18 17:56:23

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

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