Redis を使用して Python で友人関係を保存する方法
私は最近、
単純なソーシャル グラフを保存するのに 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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











GO言語で効率的なキー価値ペアストレージを実装する正しい方法GO言語でRedisと同様のキー値ペアメモリを開発するときに最高のパフォーマンスを実現する方法...

MySQLとRedisの間のデータの一貫性に関する2つのソリューション:ダブル削除の遅延と最初にデータベースの変更、次にキャッシュの削除を使用して、MySQLとRedisのデータの一貫性の問題を処理するために使用されます。

XMLコンテンツを変更するには、ターゲットノードの正確な検出が必要であるため、プログラミングが必要です。プログラミング言語には、XMLを処理するための対応するライブラリがあり、APIを提供して、データベースの運用などの安全で効率的で制御可能な操作を実行します。

小さなXMLファイルの場合、注釈コンテンツをテキストエディターに直接置き換えることができます。大きなファイルの場合、XMLパーサーを使用してそれを変更して、効率と精度を確保することをお勧めします。 XMLコメントを削除するときは注意してください。コメントを維持すると、通常、コードの理解とメンテナンスが役立ちます。高度なヒントは、XMLパーサーを使用してコメントを変更するためのPythonサンプルコードを提供しますが、特定の実装を使用するXMLライブラリに従って調整する必要があります。 XMLファイルを変更する際のエンコード問題に注意してください。 UTF-8エンコードを使用して、エンコード形式を指定することをお勧めします。

XMLをSAXで変更することは、次の手順を含むイベントベースの戦略です。XMLコンテンツを読み、要素イベントをリッスンします。要素を変更する必要があるかどうかを判断します。テキストイベントで変更します。 End Elementイベントに変更されたコンテンツを記述します。

XMLノードコンテンツの変更スキル:1。ElementTreeモジュールを使用して、ノード(findall()、find())を見つけます。 2。テキスト属性を変更します。 3. Xpath式を使用して、それらを正確に見つけます。 4。エンコード、名前空間、例外処理を検討します。 5。パフォーマンスの最適化に注意してください(繰り返しのトラバーサルを避けてください)

XMLを介して画像を生成するには、XMLのメタデータ(サイズ、色)に基づいて画像を生成するために、ブリッジとしてグラフライブラリ(枕やJFreechartなど)を使用する必要があります。画像のサイズを制御するための鍵は、< width>の値を調整することです。および< height> XMLのタグ。ただし、実際のアプリケーションでは、XML構造の複雑さ、グラフ描画の細かさ、画像生成の速度とメモリ消費の速度、および画像形式の選択はすべて、生成された画像サイズに影響を与えます。したがって、グラフィックライブラリに熟練したXML構造を深く理解し、最適化アルゴリズムや画像形式の選択などの要因を考慮する必要があります。
