Rumah > pangkalan data > Redis > teks badan

Cara menggunakan Redis untuk menyimpan perhubungan rakan dalam python

WBOY
Lepaskan: 2023-05-27 15:19:20
ke hadapan
1111 orang telah melayarinya

  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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!