redis-py 4.1.0 đã phát hành!
Hỗ trợ Python cho Redis đã phát triển 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 spitting distance (khoảng cách rất gần) của việc hỗ trợ lệnh Redis hoàn chỉnh trong Redis 6.2. Chúng tôi đã thêm hỗ trợ cho các tùy chọn còn thiếu trong các lệnh hiện có, hỗ trợ SSL cho kết nối Sentinel, và tổng thể cải thiện trải nghiệm nhà phát triển. Nó cũng mang lại các thay đổi cấu trúc lớn như tập trung vào Python 3.6, thậm chí hỗ trợ Python 3.10. Chúng tôi đã cải tiến tài liệu client, làm cho việc tìm 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 sự 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 đề tương thích.
Hỗ trợ các lệnh Redis mới nhất
Redis 6.2 mang theo một loạt lớn 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 dễ dàng lấy dữ liệu và cập nhật thời gian hết hạn trong một lệnh duy nhất với GETEX, đến quản lý các thực thể Redis bằng cách ngắt kết nối client với CLIENT INFO và CLIENT KILL, redis-py 4.1.0 đã bao gồm. Hãy xem hai ví dụ dưới đây trong 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 (First class)
redis-py 4.0 là phiên bản đầu tiên của thư viện Python mang lại hỗ trợ hạng nhất cho các mô-đun Redis. Với 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ó — thậm chí có thể tìm kiếm nó! Chỉ nhớ, 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 dành riêng cho JSON để thao tác nó. Đây là một số ví dụ:
### LƯU TRỮ VÀ TRUY XUẤT 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')
Vậy tài liệu như myDoc ở trên sao? Bạn có biết bạn có thể lấy nhiều khóa bằng cách truy vấn một phần của tài liệu?
### LẤY TẤT CẢ KHÓA TÊN "hello" TỪ TÀI LIỆU JSON
r.json().get('colors', '$..hello')
Bạn thậm chí có thể kết hợp RedisJSON và RediSearch cho 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 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.
### KẾT NỐI ĐẾN CỤM
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 khởi tạo lớp (class init), và muốn chạy các lệnh, nhắm đến các nút cụ thể. redis-py 4.1.0 hỗ trợ các tình huống đó!
### KẾT NỐI ĐẾN CỤM 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 chưa bao giờ xong và chúng tôi đang tiến toàn hơi! Chúng tôi sẽ thêm hỗ trợ cho nhiều mô-đun 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 hàm 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 làm việc trên công cụ dành cho nhà phát triển, để làm cho việc đóng góp và làm việc với redis-py tốt hơn nữa!