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

เปิดตัว Upstash Redis Python SDK v1.0.0 – Client แบบ Connectionless พร้อม Serverless

วันนี้เราเผยแพร่ version v1.0.0 ของแพ็กเกจ upstash-redis สำหรับ Python พร้อมใช้งานบน GitHub และ PyPi แล้ว

แพ็กเกจนี้เป็น connectionless HTTP-based client สำหรับ Upstash Redis ออกแบบมาเพื่อใช้งานใน serverless environments เช่น AWS Lambda, Google Cloud Functions หรือสภาพแวดล้อมที่ชอบ HTTP มากกว่า TCP

อะไรใหม่บ้าง?

ใน version ใหม่นี้ แพ็กเกจมาพร้อม python docstrings สำหรับทุก command พร้อมตัวอย่างการใช้งาน

เปิดตัว Upstash Redis Python SDK v1.0.0 – Client แบบ Connectionless พร้อม Serverless

คุณยังหา documentation และตัวอย่างสำหรับทุก command ได้ใน upstash redis python docs

Quick Start

ติดตั้งแพ็กเกจ

pip install upstash-redis

สร้าง Redis client

from upstash_redis import UpstashRedis
redis = Redis(url="UPSTASH_REDIS_REST_URL", token="UPSTASH_REDIS_REST_TOKEN")
redis.set("key", "value")

สามารถใช้ environment variables UPSTASH_REDIS_REST_URL และ UPSTASH_REDIS_REST_TOKEN แทนการส่งผ่าน constructor:

from upstash_redis import UpstashRedis
redis = Redis.from_env()
redis.set("key", "value")

SDK รองรับ async functions ด้วย asyncio และ aiohttp:

import asyncio
from upstash_redis.asyncio import Redis

async def main():
    redis = Redis.from_env()
    await redis.set("key", "value")

asyncio.run(main())

ถ้าอยู่ใน serverless environment ที่อนุญาต แนะนำให้ initialize client นอก request handler เพื่อ reuse ขณะ function ยัง hot

การเปลี่ยนแปลง value type ในบาง commands

Commands บางตัวเช่น set หรือ hset เดิมรับ Any เป็น value type แล้วแปลงเป็น string ด้วย json.dumps ทำให้เกิดความสับสนบ้าง

ตอนนี้เปลี่ยนเป็น type ใหม่ ValueT ที่รับเฉพาะ str, int, float และ bool:

ValueT = Union[str, int, float, bool]
def set(
  self, key: str, value: ValueT, ...
) -> Optional[str]: ...

SDK ยังรองรับพฤติกรรมเก่า แต่ typing เปลี่ยนแล้ว:

# ทำงานได้ แต่มี type error
redis.set("key", {"foo": "bar"})
# ทำงานได้
redis.set("key", json.dumps({"foo": "bar"}))

Geo commands คืนค่า GeoSearchResult แทน Dict

Commands geosearch และ georadius ตอนนี้คืนค่า object GeoSearchResult แทน dictionary ซึ่งสะดวกกว่า

Set commands คืนค่า List แทน Set

เปลี่ยน return types ของ sdiff, sunion, sinter, และ smembers เป็น List จาก Set กำจัด extra set allocation สำหรับผู้ที่ iterate ผลลัพธ์ ถ้าต้องการ set ก็แปลงกลับได้เอง

สรุป

หวังว่าคุณจะเพลิดเพลินกับ version ใหม่นี้ เราวางแผนเพิ่ม support pipeline และ json commands ใน python sdk

คุณยังดู python ratelimiting library ของเรา หรือ blog posts อื่นๆ เกี่ยวกับ Python ได้

หากมีคำถามหรือ feedback ติดต่อเราที่ X หรือ Discord ได้เลย