值得使用Redis而不是将数据存储在运行时只需要的对象中?
我正在创build一个派对系统,
使用套接字,人们可以发出accept, decline, invite, kick, changeLeader
事件为党。
我需要一些方法来跟踪用户,所以我创build了一个包含所有相关信息的对象,例如
let partyManager = {}; partyManager[partyUUID] = { creator: username, creatorSID: g04wn0gn9w490g, // socket id members: [], invited: [] }
但是我想也许它很难在程序本身存储这些信息的程序上,也许一个数据库更适合于这个,但是我想要一些快速和诚实的,只是真的想尝试Redis ..
所以我开始研究我的商店/架构的redis存储信息我想出了类似的东西
hmset party:uuid:owner "creator" "username" "creatorSID" "socket id" sadd party:uuid:members "user1" "user2" sadd party:uuid:invited "user3"
这给了我一个散列,其中包含了派对所有者的信息,以及与当前成员相关的两组信息,以及具有未决邀请的用户(所以人们不能参加他们没有被邀请的派对)
但是后来我记得Redis存储在内存中,存储在一个对象中也会存储在内存中,不是吗?
我主要想知道,如果使用Redis来实现这一点,比将对象存储在一个对象中更有效/更好。
据我所知,在你的情况下使用Redis的主要兴趣是:
- 使数据持久化,如果Redis持久性被激活
- 允许在应用程序服务器的多个实例之间共享数据
- 使这个应用程序服务器成为无状态(这对于故障转移和缩放更好)。
如果您不考虑这些问题,Redis对您描述的用例的兴趣不大。