Redis
 Computer >> コンピューター >  >> プログラミング >> Redis

こんにちはredis-py、それは1分でした

redis-py 4.1.0がリリースされました!

PythonによるRedisのサポートは10年以上にわたって成長しており、1週間あたりのダウンロード数は100万を超えています。また、最新リリースのredis-py4.1.0を発表できることを誇りに思います。

このリリースでは、Redis6.2での完全なRedisコマンドサポートの範囲内にほぼ到達できます。既存のコマンドで欠落しているオプションのサポート、Sentinel接続のSSLサポートを追加し、一般的に開発者のエクスペリエンスを向上させました。また、Python 3.6に焦点を当てる、さらにはPython 3.10のサポートなど、大きな構造上の変更ももたらします。クライアントのドキュメントを刷新し、Redisコマンドを見つけやすくし、すべての人が参加できるようにしました。さらに重要なのは、中断を最小限に抑えてアップグレードできるため、互換性の問題なしにアップグレードできることです。

最新のRedisコマンドのサポート

Redis 6.2には、膨大な数の新しいRedisコマンドが含まれており、Pythonでの使用がこれまでになく簡単になりました。 GETEXを使用した単一のコマンドでのデータのフェッチと有効期限の更新を容易にすることから、CLIENTINFOおよびCLIENTKILLを使用してクライアントを切断することによるRedisインスタンスの管理まで、redis-py4.1.0で対応できます。 redis-py 4.1.0で追加された30を超えるコマンドの以下の2つの例を見てみましょう!

### GETEX
import redis
r = redis.Redis()
r.set('somekey', 'hello')
r.getex('somekey', ex=15) # returns 'Hello'
r.ttl('somekey') # returns 15
​
​
### CLIENT INFO AND KILL
import redis
r = redis.Redis()
r2 = redis.Redis()
r.client_setname('redis-py-c1')
r2.client_setname('redis-py-c2')
​
clients = [client for client in r.client_list()
                   if client.get('name') in ['redis-py-c1', 'redis-py-c2']]
clients_by_name = dict([(client.get('name'), client)
                                for client in clients])
r.client_kill_filter(laddr=clients_by_name['redis-py-c2'].get('laddr'))

ファーストクラスのRedisモジュールのサポート

redis-py 4.0は、Redisモジュールのファーストクラスのサポートを提供するPythonライブラリの最初のバージョンでした。 redis-py 4.1.0のリリースにより、RedisJSON、RediSearch、RedisTimeSeries、RedisGraph、およびRedisBloomがサポートされるようになりました。そうです、JSONデータをRedisに簡単に保存できます!あなたはそれを操作することができます-あなたはそれを検索することさえできます! JSONデータをRedisに保存すると、新しいデータ型が保存されるため、JSON固有のコマンドを使用して操作する必要があることを忘れないでください。次にいくつかの例を示します。

### STORING and RETRIEVING JSON
​
import redis
r = redis.Redis()
myDoc = {'hello', 'world', 'colours': ['red', 'blue', 'green'], 'hmm': {'hello': 'again'}}
r.json().set('colors', '$', myDoc)
r.json().get('colors')

上記のmyDocのようなドキュメントはどうですか?ドキュメントの一部をクエリすることで複数のキーを取得できることをご存知ですか?

### FETCHING ALL KEYS NAMED “hello” from the JSON document
r.json().get('colors', '$..hello')

文書機能のためにRedisJSONとRediSearchを組み合わせたり、カスタムRedisモジュールサポートを追加したりすることもできます。それはすべてredis-py4.0にあります。

redis-pyによるRedisクラスターのサポート

redis-py 4.1.0は、2つの簡単な接続方法でredis-clusterサポートも統合していることをご存知ですか?スタンドアロンのRedisノードと対話するための同じ優れたエクスペリエンスがredis-pyの一部になりました。

### CONNECTING TO CLUSTER
from redis.cluster import RedisCluster
r = RedisCluster.from_url('redis://4.5.6.8:6379')
nodes = r.get_nodes()

SSL経由でクラスタに接続するか、クラス初期化ベースのアプローチを好み、特定のノードを対象としてコマンドを実行したい場合があります。 redis-py 4.1.0はこれらのシナリオをサポートしています!

### CONNECTING TO CLUSTER 2
from redis.cluster import RedisCluster
r = RedisCluster('4.5.6.8', port=6379, ssl=True)
r.ping(target_nodes='all')

次は?

作業は決して完了せず、私たちは全力で前進しています!同じファーストクラスのエクスペリエンスで、RedisAIなどのより多くのモジュールのサポートを追加します。 Redis 7でリリースされるRESP3機能のサポートを追加し、コードベースを高速化します。また、redis-pyへの貢献と連携をさらに改善するために、開発者向けツールにも取り組んでいます!


  1. Redis.ioの更新と拡張

    本日、Redis.ioのリニューアルを発表できることをうれしく思います。 Redis.ioは、常にRedisのホームであり、新しいRedisユーザーのエントリポイントです。今回のリリースでは、サイトのデザインを最新化し、インフラストラクチャを更新しながら、コアのRedisドキュメントを改訂しました。 この投稿では、サイトの再起動の動機について説明し、Redis.ioサイトの改訂で採用した原則を共有し、次の内容をプレビューします。 Redis.ioの更新 Redisは、最初のコミットから13年で長い道のりを歩んできました。現在、基盤となるデータベーステクノロジーとして確立され、世界中のデ

  2. FastlyComputeでRedisを使用する

    この例では、古いバージョンのFastlyCLIを使用しています。最新バージョンについては、この記事を確認してください。 この投稿では、Fastly Compute@Edgeで実行される簡単なアプリケーションを作成します。アプリケーションはUpstashRedisにアクセスして、ページビューを追跡します。 モチベーション エッジコンピューティングは、近年最もエキサイティングなトレンドの1つです。 CloudflareやFastlyなどのCDNサービスは、ユーザーがエッジインフラストラクチャでアプリケーションを実行できるようにするために開始されました。これは、開発者がグローバルに分散された高