Computer >> 컴퓨터 >  >> 프로그래밍 >> Redis

Upstash Redis Python SDK v1.0.0 소개 – 비연결, 서버리스 지원 클라이언트

오늘 v1.0.0을 출시합니다. upstash-redis 버전 파이썬 패키지. 이제 GitHub와 PyPi에서 사용할 수 있습니다.

이 패키지는 Upstash Redis용 연결 없는 HTTP 기반 클라이언트로, AWS Lambda, Google Cloud Functions 또는 TCP보다 HTTP가 선호되는 모든 환경과 같은 서버리스 환경에서 사용할 수 있도록 설계되었습니다.

새로운 소식

새 버전에서는 패키지에 모든 명령에 대한 예제 사용법이 포함된 Python 독스트링이 함께 제공됩니다.

Upstash Redis Python SDK v1.0.0 소개 – 비연결, 서버리스 지원 클라이언트

upstash redis Python 문서에서 모든 명령에 대한 문서와 예제를 찾을 수도 있습니다.

빠른 시작

패키지 설치

pip install upstash-redis

Redis 클라이언트 생성

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

환경 변수 UPSTASH_REDIS_REST_URL를 사용할 수도 있습니다. 그리고 UPSTASH_REDIS_REST_TOKEN 생성자에 전달하는 대신

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

SDK는 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())

이를 허용하는 서버리스 환경에 있는 경우 함수가 여전히 활성화되어 있는 동안 재사용되도록 요청 핸들러 외부에서 클라이언트를 초기화하는 것이 좋습니다.

일부 명령의 값 유형 변경

set와 같은 일부 명령 또는 hset 허용됨 Any 값 유형으로. 그런 다음 값은 json.dumps을 사용하여 문자열로 변환되었습니다. . 이로 인해 일부 명령에서 혼란이 발생했습니다.

이제 새로운 유형인 ValueT으로 변경되었습니다. str만 허용됩니다. , int , floatbool .

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

SDK는 여전히 이전 동작을 지원하지만 입력이 변경되었습니다.

# Works, but gives a type error
redis.set("key", {"foo": "bar"})
 
# Works
redis.set("key", json.dumps({"foo": "bar"}))

Dict 대신 GeoSearchResult를 반환하는 Geo 명령

geosearchgeoradius 이제 명령이 GeoSearchResult을 반환합니다. 사전 대신 객체를 사용하는 것이 더 편리합니다.

Set 대신 List를 반환하는 Set 명령

sdiff의 반환 유형이 변경되었습니다. , sunion , sintersmembers List에 대한 메서드 Set에서 .이것은 결과에 대해 반복을 수행하는 사용자에 대한 추가 세트 할당을 제거합니다. 원하는 경우 목록을 직접 설정으로 되돌릴 수 있습니다.

결론

새로운 버전의 패키지를 즐겨보시기 바랍니다. pipeline을 추가할 계획입니다. 및 json 명령은 Python SDK를 지원합니다.

또한 Python 속도 제한 라이브러리나 Python에 관한 다른 블로그 게시물을 확인하실 수도 있습니다.

질문이나 피드백이 있으시면 X나 Discord를 통해 연락주세요.