
希望大佬能指点一二呀= =,
1 gaius 2018-11-07 10:20:53 +08:00 循环查 redis 是什么意思? |
2 lanqing OP @gaius 因为 redis 中的数据是动态加入进去的,当那个 socket 没有查到他想要的数据的时候,就会过个两秒钟接着去 redis 中查数据,一直到查到为止 |
3 xiaoxinsiwo 2018-11-07 10:34:40 +08:00 redis 不是有发布和订阅机制吗? 再不然使用消息中间件,订阅 topic 然后监听接收消息啊 |
4 changnet 2018-11-07 10:36:18 +08:00 via Android redis 是 kv 结构,为啥是循环查找而不是按 key 取 10000 个 socket 连接是支持的 说实在,不知道具体业务。不知道 client 是面对用户还是内部接口,不知道请求频率,不知道数据结构,这种问题发出来也没什么人帮得了你 |
5 newtype0092 2018-11-07 10:37:01 +08:00 你只是想实现一个队列消息加服务端推送吧。。。 |
6 ipoh 2018-11-07 10:37:23 +08:00 不用多线程的模型,用异步的方式 服务器这边维护一个{clientID->socket 句柄}的哈希表 然后启一个线程去循环查 redis 每个元素,元素的在上面哈希表中就用对应的 socket 句柄发送过去 |
7 richzhu 2018-11-07 10:39:46 +08:00 0.0 客户端知道自己想要什么吧? 客户端想要的称之为 Key, 然后服务端可以根据 Key 去 redis 取? 取到的值叫 value ? 酱紫。。不需要循环吧? |
8 niubee1 2018-11-07 10:42:27 +08:00 我倒是很想知道什么样的人会设计 redis 用循环的方式读取数据, 莫不是来搞笑的 |
9 lauix 2018-11-07 10:42:33 +08:00 你这样是 client 主动拉取,为什么不主动推送。 不想自己写,可以用现成的 比如 MQTT 协议,ZMQ , T-IO 等开业项目。 |
10 lanqing OP @xiaoxinshiwo 非常感谢,发布和订阅机制能帮助我 |
11 knightlhs 2018-11-07 10:44:07 +08:00 10000 个 cient 也不过是 10000 个 list 而已 每个 client 去查找自己的 list 找到数据就返回 找不到就阻塞 直到 超时就好啊 你只要根据数据不同 分发到不同的 list 去就可以了 你这个 redis 没学好啊 redis 支持那么多种用法跟结构啊 |
12 Outliver0 2018-11-07 10:44:29 +08:00 epoll |
13 lanqing OP @lauix 感谢,对,可以理解是 client 主动拉取,但是不还是需要 client 主动过来建立链接,然后才能发送过去吗= = |
15 lauix 2018-11-07 10:51:38 +08:00 @lanqing 打错字了,是开源。 client 当然要连接 server 端了,但是 client 只接收消息,server 端 有数据的时候,主动发送到 client。 和其他人说的 发布订阅一个道理 。可以自己写,可以采用其他开源的项目。 |