Computer >> Máy Tính >  >> Lập trình >> Redis

Xin chào redis-py, It’s Been a Minute

redis-py 4.1.0 được phát hành!

Hỗ trợ Python cho Redis đã phát triển trong hơn một thập kỷ, đạt hơn 1 triệu lượt tải xuống mỗi tuần và chúng tôi tự hào thông báo bản phát hành mới nhất, redis-py 4.1.0!

Bản phát hành này gần như đưa chúng ta đến với sự hỗ trợ hoàn chỉnh của lệnh Redis trong Redis 6.2. Chúng tôi đã bổ sung hỗ trợ cho các tùy chọn bị thiếu trong các lệnh hiện có, hỗ trợ SSL cho các kết nối Sentinel và nói chung là cải thiện trải nghiệm của nhà phát triển. Nó cũng mang đến những thay đổi lớn về cấu trúc như tập trung vào Python 3.6 và thậm chí hỗ trợ Python 3.10. Chúng tôi đã cải tiến tài liệu khách hàng của mình, giúp tìm các lệnh Redis dễ dàng hơn và khuyến khích mọi người tham gia! Quan trọng hơn, chúng tôi đã làm điều đó với mức độ gián đoạn tối thiểu, vì vậy bạn có thể nâng cấp mà không gặp vấn đề về khả năng tương thích.

Hỗ trợ các lệnh Redis mới nhất

Redis 6.2 mang theo một loạt các lệnh Redis mới và giờ đây việc sử dụng chúng với Python dễ dàng hơn bao giờ hết. Từ việc giúp dễ dàng tìm nạp dữ liệu và cập nhật dữ liệu hết hạn trong một lệnh duy nhất với GETEX, đến việc quản lý các phiên bản Redis của bạn bằng cách ngắt kết nối các ứng dụng khách với CLIENT INFO và CLIENT KILL redis-py 4.1.0 đã bao gồm bạn. Hãy xem hai ví dụ dưới đây về hơn 30 lệnh được thêm vào redis-py 4.1.0!

### 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'))

Hỗ trợ mô-đun Redis hạng nhất

redis-py 4.0 là phiên bản đầu tiên của thư viện Python để hỗ trợ hạng nhất cho các mô-đun Redis. Với việc phát hành redis-py 4.1.0, chúng tôi hiện có hỗ trợ cho RedisJSON, RediSearch, RedisTimeSeries, RedisGraph và RedisBloom. Đúng vậy, bạn có thể dễ dàng lưu trữ dữ liệu JSON trong Redis! Bạn có thể thao tác trên nó - bạn thậm chí có thể tìm kiếm nó! Chỉ cần nhớ rằng, khi bạn lưu trữ dữ liệu JSON trong Redis, bạn đang lưu trữ một kiểu dữ liệu mới, vì vậy bạn cần sử dụng các lệnh cụ thể của JSON để thao tác với nó. Dưới đây là một số ví dụ:

### 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')

Còn các tài liệu như myDoc ở trên thì sao? Bạn có biết rằng bạn có thể tìm nạp nhiều khóa bằng cách truy vấn một phần của tài liệu không?

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

Bạn thậm chí có thể kết hợp RedisJSON và RediSearch để có khả năng tài liệu hoặc thêm hỗ trợ mô-đun Redis tùy chỉnh của bạn. Tất cả đều có trong redis-py 4.0.

Hỗ trợ cụm redis với redis-py

Bạn có biết rằng redis-py 4.1.0 cũng tích hợp hỗ trợ redis-cluster, với hai cách dễ dàng để kết nối? Trải nghiệm tuyệt vời tương tự để tương tác với các nút Redis độc lập hiện là một phần của redis-py.

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

Có thể bạn muốn kết nối với cụm của mình qua SSL hoặc thích cách tiếp cận dựa trên đơn vị lớp và muốn chạy các lệnh, nhắm mục tiêu các nút cụ thể. redis-py 4.1.0 hỗ trợ các trường hợp đó!

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

Tiếp theo là gì?

Công việc không bao giờ hoàn thành và chúng tôi đang tiến lên phía trước! Chúng tôi sẽ bổ sung hỗ trợ cho nhiều mô-đun hơn, chẳng hạn như RedisAI, với cùng trải nghiệm hạng nhất. Chúng tôi sẽ thêm hỗ trợ cho các chức năng RESP3 sẽ được phát hành trong Redis 7 và tăng tốc cơ sở mã. Chúng tôi cũng đang nghiên cứu về công cụ dành cho nhà phát triển, để đóng góp và làm việc với redis-py tốt hơn nữa!