Rumah >pangkalan data >Redis >Cara menggunakan Redis untuk menyimpan perhubungan rakan dalam python

Cara menggunakan Redis untuk menyimpan perhubungan rakan dalam python

WBOY
WBOYke hadapan
2023-05-27 15:19:201134semak imbas

  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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam