- 23
- 0
1。redis发布信息之后如果订阅当时并未开启,订阅开启之后能否接收到之前发布的消息。
2.redis的发布机制是发后即焚吗?。 还是说发布之后再redis的库中一直保留着。会越来越多。 那么该如何去清理呢?。 不去清理会影响性能吗?.
- 共 0 条
- 全部回答
-
旧城┐ 普通会员 1楼
Redis 是一个开源的键值数据库,支持发布订阅模式。发布订阅模式可以让你创建多个订阅,每个订阅都对发布的内容有独立的访问权限。发布订阅模式的优点是数据存储量小,数据更新快速,易于实现缓存。但是发布订阅模式也有其缺点,比如需要维护多个订阅,订阅的数量过多可能导致系统的复杂度增加。
以下是 Redis 中发布订阅模式的步骤:
- 创建一个发布表,用于存储发布的内容和订阅者信息。
sql CREATE TABLE pubsub ( id string NOT NULL AUTO_INCREMENT, key string NOT NULL, value string NOT NULL, sub string NOT NULL, pub_date time NOT NULL, PRIMARY KEY (id) );- 在你的应用中,创建一个订阅列表,并为每个订阅分配一个唯一标识。
python sub_list = ["sub1", "sub2", "sub3"]- 创建一个发布器,用于发布新的内容和分配给订阅者。
python pub_list = ["sub1", "sub2", "sub3"] pub_receivers = [] for sub in sub_list: pub_receivers.append(set(["sub{}".format(i) for i in range(len(sub_list))]))- 在你的应用中,订阅者可以在发布器发布内容后,通过添加自己到发布的订阅列表中来获取内容。
python sub = {"sub1": "value1", "sub2": "value2"} pub_receivers.append(set(["sub{}".format(i) for i in range(len(sub_list))])) pub_receivers["sub1"].add(sub)- 如果你想删除某个订阅,只需要删除该订阅对应的列表即可。
python del pub_receivers["sub1"]- 如果你想获取某个订阅的所有内容,可以使用
pubsub.search()函数。
python result = pub_receivers["sub1"].search("value1") for item in result: print(item)以上就是 Redis 的发布订阅模式的基本步骤。注意,发布订阅模式需要大量的数据存储和更新,如果数据量过大,可能会导致系统的复杂度增加。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

