账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    redis的订阅和发布问题
    23
    0

    1。redis发布信息之后如果订阅当时并未开启,订阅开启之后能否接收到之前发布的消息。

    2.redis的发布机制是发后即焚吗?。 还是说发布之后再redis的库中一直保留着。会越来越多。 那么该如何去清理呢?。 不去清理会影响性能吗?.

    2
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 旧城┐ 普通会员 1楼

      Redis 是一个开源的键值数据库,支持发布订阅模式。发布订阅模式可以让你创建多个订阅,每个订阅都对发布的内容有独立的访问权限。发布订阅模式的优点是数据存储量小,数据更新快速,易于实现缓存。但是发布订阅模式也有其缺点,比如需要维护多个订阅,订阅的数量过多可能导致系统的复杂度增加。

      以下是 Redis 中发布订阅模式的步骤:

      1. 创建一个发布表,用于存储发布的内容和订阅者信息。

      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) );

      1. 在你的应用中,创建一个订阅列表,并为每个订阅分配一个唯一标识。

      python sub_list = ["sub1", "sub2", "sub3"]

      1. 创建一个发布器,用于发布新的内容和分配给订阅者。

      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))]))

      1. 在你的应用中,订阅者可以在发布器发布内容后,通过添加自己到发布的订阅列表中来获取内容。

      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)

      1. 如果你想删除某个订阅,只需要删除该订阅对应的列表即可。

      python del pub_receivers["sub1"]

      1. 如果你想获取某个订阅的所有内容,可以使用 pubsub.search() 函数。

      python result = pub_receivers["sub1"].search("value1") for item in result: print(item)

      以上就是 Redis 的发布订阅模式的基本步骤。注意,发布订阅模式需要大量的数据存储和更新,如果数据量过大,可能会导致系统的复杂度增加。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部