Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Redis

สวัสดี redis-py ผ่านไปแล้วหนึ่งนาที

เปิดตัว redis-py 4.1.0 แล้ว!

การสนับสนุน Python สำหรับ Redis เติบโตขึ้นมานานกว่าทศวรรษ โดยมีการดาวน์โหลดมากกว่า 1 ล้านครั้งต่อสัปดาห์ และเราภูมิใจที่จะประกาศเปิดตัวรุ่นล่าสุด redis-py 4.1.0!

รุ่นนี้เกือบทำให้เราอยู่ในระยะที่เว้นระยะห่างจากการสนับสนุนคำสั่ง Redis ที่สมบูรณ์ใน Redis 6.2 เราได้เพิ่มการรองรับตัวเลือกที่หายไปในคำสั่งที่มีอยู่ รองรับ SSL สำหรับการเชื่อมต่อ Sentinel และปรับปรุงประสบการณ์ของนักพัฒนาโดยทั่วไป นอกจากนี้ยังนำเสนอการเปลี่ยนแปลงโครงสร้างขนาดใหญ่ เช่น การเน้นที่ Python 3.6 และแม้แต่การรองรับ Python 3.10 เราได้ปรับปรุงเอกสารลูกค้าของเรา ทำให้ค้นหาคำสั่ง Redis ได้ง่ายขึ้น และสนับสนุนให้ทุกคนมีส่วนร่วม! ที่สำคัญกว่านั้น เราได้ดำเนินการดังกล่าวโดยมีการรบกวนน้อยที่สุด คุณจึงอัปเกรดได้โดยไม่มีปัญหาเรื่องความเข้ากันได้

รองรับคำสั่ง Redis ใหม่ล่าสุด

Redis 6.2 มาพร้อมกับคำสั่ง Redis จำนวนมาก และตอนนี้มันง่ายกว่าที่เคยใช้กับ Python คุณได้ครอบคลุมตั้งแต่การทำให้ดึงข้อมูลและอัปเดตวันหมดอายุได้ง่ายขึ้นในคำสั่งเดียวด้วย GETEX ไปจนถึงการจัดการอินสแตนซ์ Redis ของคุณโดยยกเลิกการเชื่อมต่อไคลเอ็นต์ด้วย CLIENT INFO และ CLIENT KILL redis-py 4.1.0 มาดูตัวอย่างสองตัวอย่างด้านล่างของคำสั่งมากกว่า 30 คำสั่งที่เพิ่มเข้ามาใน 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'))

รองรับโมดูล Redis ระดับเฟิร์สคลาส

redis-py 4.0 เป็นเวอร์ชันแรกของไลบรารี Python ที่รองรับโมดูล Redis ระดับเฟิร์สคลาส ด้วยการเปิดตัว 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-py 4.0

รองรับคลัสเตอร์ Redis ด้วย redis-py

คุณทราบหรือไม่ว่า redis-py 4.1.0 ยังรวมการสนับสนุน 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 หรือชอบวิธีการตามคลาส init และต้องการเรียกใช้คำสั่งโดยกำหนดเป้าหมายไปยังโหนดเฉพาะ 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 ด้วยประสบการณ์ระดับเฟิร์สคลาสที่เหมือนกัน เรากำลังจะเพิ่มการรองรับสำหรับฟังก์ชัน RESP3 ที่จะวางจำหน่ายใน Redis 7 และเพิ่มความเร็วให้กับฐานโค้ด เรากำลังดำเนินการเกี่ยวกับเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ เพื่อช่วยให้การสนับสนุนและทำงานกับ redis-py ดียิ่งขึ้นไปอีก!