ホームページ  >  記事  >  データベース  >  Redis を使用して Python で友人関係を保存する方法

Redis を使用して Python で友人関係を保存する方法

WBOY
WBOY転載
2023-05-27 15:19:201078ブラウズ

私は最近、

単純なソーシャル グラフを保存するのに Redis がどれほど完璧であるかについて考えています。私は、これは比較的少ないコード行であり、

そしてクリーンなコードになるだろうと仮定しました。 Redis 上に構築された基本的なソーシャル グラフです。

# self.ring =ring

# # これらのキーは、redis のメモリを節約するために意図的に短くしています

# self.FOLLOWS_KEY = 'F'

self .FOLLOWERS_KEY = 'f'

self.BLOCKS_KEY = 'B'

self.BLOCKED_KEY = 'b'

def follow(self, from_user, to_user):

forward_key = '%s:%s' % (self.FOLLOWS_KEY, from_user)

forward = self.ring.sadd(forward_key, to_user)

reverse_key = '%s :%s' % (self.FOLLOWERS_KEY, to_user)

self.ring.sadd(reverse_key, from_user) = reverse

順方向と逆方向に戻ります

怎样用Redis存储好友关系-python版

# def unfollow(self, from_user, to_user):

forward_key = '%s:%s' % (self.FOLLOWS_KEY, from_user)

forward = self.ring.srem(forward_key, to_user)

reverse_key = '%s:%s' % (self.FOLLOWERS_KEY, to_user)

下は一重写的方式: 指定されたユーザをサイクルから除外し、操作後のサイクルは「リバース」と呼ばれ、除外されたユーザを返します。 「」パイソン Remove_user = self.ring.srem(reverse_key, from_user) reverse = self.ring # 删削除操作後のコールをリバースします ```

順方向と逆方向に戻る

def block(self, from_user, to_user):

forward_key = '%s:%s' % (self.BLOCKS_KEY, from_user)

forward = self.ring.sadd(forward_key, to_user)

reverse_key = '%s:%s' % (self.BLOCKED_KEY, to_user)

self .ring.sadd(reverse_key, from_user) = reverse

forwardとreverseを返す

def unblock(self, from_user, to_user):

forward_key = '%s:% s' % (self.BLOCKS_KEY, from_user)

forward = self.ring.srem(forward_key, to_user)

reverse_key = '%s:%s' % (self.BLOCKED_KEY, to_user) )

次は再書き込みの方法です: 指定されたユーザをサイクルから除外し、操作後のサイクルは「リバース」と呼ばれ、除外されたユーザを返します。 「」パイソン Remove_user = self.ring.srem(reverse_key, from_user) reverse = self.ring # 删削除操作後のコールをリバースします ```

順方向と逆方向に戻る

def get_follows(self, user):

follows = self.ring.smembers('%s:%s' % ( self.FOLLOWS_KEY, user))

blocked = self.ring.smembers('%s:%s' % (self.BLOCKED_KEY, user))

return list(follows.difference(ブロックされました))

# def get_followers(self, user):

followers = self.ring.smembers('%s:%s' % (self.FOLLOWERS_KEY, user))

blocks = self.ring.smembers('%s:%s' % (self.BLOCKS_KEY, user))

return list(followers.difference(blocks))

def get_blocks(self, user):

return list(self.ring.smembers('%s:%s' % (self.BLOCKS_KEY, user)))

def get_blocked(self, user):

return list(self.ring.smembers('%s:%s' % (self.BLOCKED_KEY, user)))

以上がRedis を使用して Python で友人関係を保存する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。