Saya baru-baru ini berfikir tentang betapa sempurnanya Redis untuk menyimpan
graf sosial yang ringkas. Saya menyatakan bahawa ia akan menjadi beberapa baris kod,
dan ia juga merupakan kod yang bersih. Jadi inilah: graf sosial asas yang dibina pada Redis.
"""
kelas FriendGraph(objek):
def __init__(diri, cincin):
self.ring = cincin
# Kekunci ini sengaja pendek, untuk menjimatkan memori dalam redis
self.FOLLOWS_KEY = 'F'
〜 .FOLLOWERS_KEY = 'f' self.BLOCKS_KEY = 'B' self.BLOCKED_KEY = 'b' def follow (diri sendiri, dari_): >forward_key = '%s:%s' % (self.FOLLOWS_KEY, from_user)
forward = self.ring.sadd(forward_key, to_user)
= '%s_key :%s' % (self.FOLLOWERS_KEY, to_user)
self.ring.sadd(reverse_key, from_user) = reverse
undur ke hadapan dan reverse
怎怎栭田好友关系-python版
def unfollow(self, from_user, to_user):
forward_key = '%s:%s' % (self.FOLLOWS_KEY, from_> reverse_key = '%s:%s' % (self.FOLLOWERS_KEY, to_user) 下面是一种重写的:是种重写的:
从环中删除指定用户,操作后的环称为“reverse”,并返回删除的用户。
```python
remove_user = self.ring.srem(reverse_key, from_user)
terbalik = diri.cincin # 将删除操作后的环赋值给 terbalik
``` undur ke hadapan dan belakang def block(self, from_user, to_user): forward_key = '%s:%s' % (self.Y,BLOCKS_KE 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 return forward and reverse def unblock(self, from_user, to_user): forward:%key = '%s:%_key s' % (self.BLOCKS_KEY, from_user) forward = self.ring.srem(forward_key, to_user) reverse_key = '%s:%s' % (self.BLOCKED_KEY, to_user) ) 下面是一种重写的方式:
从环中删除指定用户,操作后的环称为“reverse”,并返回删除的用户。
```python
remove_user = self.ring.srem(reverse_key, from_user)
terbalik = diri.cincin # 将删除操作后的环赋值给 terbalik
``` undur ke hadapan dan belakang def get_follows(self, user): follows = self.ring.smembers('%s:%s' % ( diri.FOLLOWS_KEY, pengguna)) disekat = self.ring.smembers('%s:%s' % (self.BLOCKED_KEY, pengguna)) kembali senarai(follows.difference( disekat)) 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)) kembali senarai(followers.difference(block)) def get_blocks(self, user): kembali senarai(self.ring.smembers('%s:%s' % (self.BLOCKS_KEY, pengguna))) def get_blocked(self, pengguna): kembali senarai(self.ring.smembers('%s:%s' % (self.BLOCKED_KEY, pengguna)))
Atas ialah kandungan terperinci Cara menggunakan Redis untuk menyimpan perhubungan rakan dalam python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!