当前位置: 首页>>代码示例>>Python>>正文


Python Redis.sadd方法代码示例

本文整理汇总了Python中redis.client.Redis.sadd方法的典型用法代码示例。如果您正苦于以下问题:Python Redis.sadd方法的具体用法?Python Redis.sadd怎么用?Python Redis.sadd使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在redis.client.Redis的用法示例。


在下文中一共展示了Redis.sadd方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: RedisSocketManager

# 需要导入模块: from redis.client import Redis [as 别名]
# 或者: from redis.client.Redis import sadd [as 别名]

#.........这里部分代码省略.........
            self.redis.zadd(self.sockets_key, sessid, str(time.time()))
        super(RedisSocketManager, self).heartbeat_received(sessid)

    def handshake(self, sessid):
        """Don't create the socket yet, just mark the session as existing.
        """
        # Socket ids are kept in a sorted set, with score the latest heartbeat
        self.redis.zadd(self.sockets_key, sessid, str(time.time()))

    def is_handshaken(self, sessid):
        return bool(self.redis.zscore(self.sockets_key, sessid))

    def load_socket(self, socket):
        """Reads from Redis and sets any internal state of the socket that must 
        be shared between all sockets in the same session.
        """
        socket.hits = self.redis.hincrby(self.make_bucket_name("hits", socket.sessid), socket.sessid, 1)

        if not socket.connection_established:
            connected = self.redis.sismember(self.connected_key, socket.sessid)
            if connected:
                self.init_connection(socket, nosync=True)

        return socket

    def save_socket(self, sessid):
        """Stores into Redis any internal state that must be shared between all sockets in the same session.
        """
        return

    def init_connection(self, socket, *args, **kwargs):
        super(RedisSocketManager, self).init_connection(socket, *args, **kwargs)
        if not kwargs.get("nosync", False):
            self.redis.sadd(self.connected_key, socket.sessid)

    def activate_endpoint(self, sessid, endpoint):
        key = self.make_session_key(sessid, "endpoints")
        self.redis.sadd(key, endpoint)
        self.notify_socket(sessid, "endpoint_activated", endpoint=endpoint)

    def deactivate_endpoint(self, sessid, endpoint):
        key = self.make_session_key(sessid, "endpoints")
        ret = self.redis.srem(key, endpoint) > 0
        if (
            ret
        ):  # only notify if the endpoint was actually removed by this manager (or we'll get in infinite loop when disconnect triggers deactivate_endpoint)
            self.notify_socket(sessid, "endpoint_deactivated", endpoint=endpoint)
        return ret

    def active_endpoints(self, sessid):
        key = self.make_session_key(sessid, "endpoints")
        return self.redis.smembers(key)

    def notify_socket(self, sessid, event, *args, **kwargs):
        msg = json.dumps(dict(uuid=self.uuid, sessid=sessid, event=event, args=args, kwargs=kwargs))
        self.redis.publish("socket.events", msg)

    def notify_endpoint(self, endpoint, sessid, event, *args, **kwargs):
        msg = json.dumps(dict(uuid=self.uuid, endpoint=endpoint, sessid=sessid, event=event, args=args, kwargs=kwargs))
        self.redis.publish("endpoint.events", msg)

    def _redis_listener(self):
        """Listens to a Redis PubSub for event messages."""
        pubsub = self.redis.pubsub()
        pubsub.subscribe(self.event_handlers.keys())
开发者ID:ryesoft,项目名称:gevent-socketio,代码行数:69,代码来源:socket_manager.py


注:本文中的redis.client.Redis.sadd方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。