찾다
데이터 베이스Redis장고 레디스를 사용하는 방법

장고 레디스를 사용하는 방법

Jun 03, 2023 pm 02:53 PM
redisdjango

1. 설명

redis는 모든 면에서 큰 역할을 합니다. Python은 Redis 운영을 지원합니다. Django를 위해 특별히 설계된 redis 라이브러리, 즉 django-redis

2가 있습니다.

pip install django-redis

3. 구성

3.1 redis 구성

setting.py와 같은 Django 구성 파일을 열고 CACHES 항목을 설정하세요

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }
}

여러 Redis 연결 정보를 하나의 CACHES에 구성할 수 있습니다. 별칭(alias), 위의 "기본값"은 별칭을 통해 다른 redis 데이터베이스에 연결할 수 있습니다.

LOCATION은 IP 포트 사용자 비밀번호 등을 포함한 연결 정보입니다. 사용자 비밀번호가 필요하지 않은 경우 django- Redis는 다음과 같은 세 가지 연결 프로토콜을 지원합니다

protocol description example
redis:// 일반 TCP 소켓 연결 redis://[ [사용자 이름]: [비밀번호]]@localhost:6379/0
rediss SSL TCP 소켓 연결 rediss://[[사용자 이름]:[비밀번호]]@localhost:6379/0
rediss:// Unix 도메인 소켓 연결 unix://[[username]:[password]]@/path/to/socket.sock?db=0

3.2 Redis를 사용하여 세션 저장

Django의 기본 Session은 SQL 데이터베이스에 저장되지만 일반 데이터는 하드 디스크에 저장된다는 것은 우리 모두 알고 있기 때문에 Redis에 저장되도록 변경하려면 구성만 하면 됩니다. 단 한 번의 클릭으로

SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "default"

3.3 Redis 연결 시간 초과 설정

구성 항목에서 연결 시간 초과 시간(초)을 지정할 수 있습니다. SOCKET_CONNECT_TIMEOUT은 Redis 연결 시간 초과를 나타내며, SOCKET_TIMEOUT은 읽기 및 쓰기 시간 초과를 나타냅니다. redis를 사용하는 작업

CACHES = {
    "default": {
        # ...
        "OPTIONS": {
            "SOCKET_CONNECT_TIMEOUT": 5,  # 连接redis超时时间,单位为秒
            "SOCKET_TIMEOUT": 5,  # redis读写操作超时时间,单位为秒
        }
    }
}

4. redis 사용

4.1 기본 redis 사용

기본 redis, 즉 구성 파일에 "default" 별칭이 설정된 redis를 사용하려면 다음을 참조하세요. django.core.cache의 캐시

from django.core.cache import cache

cache.set("name", "冰冷的希望", timeout=None)
print(cache.get("name"))

4.2 지정된 redis(Native redis) 사용

구성 파일에 여러 Redis 연결을 작성할 때 별칭을 통해 사용할 Redis를 지정할 수 있습니다

from django_redis import get_redis_connection

redis_conn = get_redis_connection("chain_info")
redis_conn.set("name", "icy_hope")
print(redis_conn.get("name"))

클라이언트가 가져온 get_redis_connection()은 기본 Redis 클라이언트이지만 기본적으로 모든 기본 Redis 명령을 지원하지만 반환되는 데이터는 바이트 유형이므로 직접 디코딩해야 합니다

5. 연결 풀을 사용하는 이점 연결 풀은 연결 개체를 관리할 필요가 없으며 일부 연결 개체를 자동으로 생성하고 반복 사용을 시도하므로 성능이 상대적으로 더 좋습니다

5.1 연결 풀 구성

연결 풀을 사용하려면 먼저 Django 구성 파일의 연결 풀에 최대 연결 수를 기록합니다

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        ...
        "OPTIONS": {
            "CONNECTION_POOL_KWARGS": {"max_connections": 100}
        }
    }
}

5.2 연결 풀 사용

us 연결 별칭을 통해 사용할 Redis를 결정한 다음 정상적으로 명령을 실행하면 됩니다. 어떤 연결 인스턴스가 생성되는지는 연결_풀

from django_redis import get_redis_connection

redis_conn = get_redis_connection("default")
redis_conn.set("name", "冰冷的希望")
print(redis_conn.get("name"))

# 查看目前已创建的连接数量
connection_pool = redis_conn.connection_pool
print(connection_pool._created_connections)

5.3 사용자 정의 연결 풀

의 _created_connections 속성을 통해 현재 생성된 연결 인스턴스 수를 확인할 수 있습니다. Django-redis의 기본 연결 클래스는 더 높은 사용자 정의 요구 사항이 있는 경우 DefaultClient입니다. , 자신만의 새 클래스를 만들고 ConnectionPool

from redis.connection import ConnectionPool

class MyPool(ConnectionPool):
    pass

을 상속할 수 있습니다. 이 클래스를 만든 후에도 여전히 Django 구성 파일에 이를 지정해야 합니다

"OPTIONS": {
    "CONNECTION_POOL_CLASS": "XXX.XXX.MyPool",
}

위 내용은 장고 레디스를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 亿速云에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
기존 데이터베이스를 통해 Redis를 선택할 때 성능 상충은 무엇입니까?기존 데이터베이스를 통해 Redis를 선택할 때 성능 상충은 무엇입니까?May 16, 2025 am 12:01 AM

redisofferssuperiorspeedfordataoperations butrequiressignificantramandinvolvestrade-offsindatapersistenceandscalibility.1) itsin-memorynature providesultra-fastread/write-operations, 이상적으로 비판적 인종

Redis vs 데이터베이스 : 성능 비교Redis vs 데이터베이스 : 성능 비교May 14, 2025 am 12:11 AM

redisoutperformstraditionaldatabasesinspeedforread/writeoperationsduetoitsin-memorynature, whiletraditionaldatabasesexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexexceleclexquer

기존 데이터베이스 대신 Redis를 언제 사용해야합니까?기존 데이터베이스 대신 Redis를 언제 사용해야합니까?May 13, 2025 pm 04:01 PM

useredisinsteadofatraditionaldatabasewhenyorapplicationrequiresspeedandreal-timedataprocessing, suchasforcaching, sessionmanagement, orreal-timeanalytics.rediesxcelsin : 1) Caching, Retoadon-PrimaryDatabases; 2) 세션 관리, 단순화 datahandlon

REDIS : SQL 너머 - NOSQL 관점REDIS : SQL 너머 - NOSQL 관점May 08, 2025 am 12:25 AM

Redis는 고성능과 유연성으로 인해 SQL 데이터베이스를 뛰어 넘습니다. 1) Redis는 메모리 스토리지를 통해 매우 빠른 읽기 및 쓰기 속도를 달성합니다. 2) 복잡한 데이터 처리에 적합한 목록 및 컬렉션과 같은 다양한 데이터 구조를 지원합니다. 3) 단일 스레드 모델은 개발을 단순화하지만 높은 동시성은 병목 현상이 될 수 있습니다.

REDIS : 기존 데이터베이스 서버와 비교REDIS : 기존 데이터베이스 서버와 비교May 07, 2025 am 12:09 AM

Redis는 동시성이 높은 기존 데이터베이스보다 우수하고 대기 시간 시나리오가 낮지 만 복잡한 쿼리 및 트랜잭션 처리에는 적합하지 않습니다. 1.Redis는 메모리 저장, 빠른 읽기 및 쓰기 속도, 높은 동시성 및 낮은 대기 시간 요구 사항에 적합합니다. 2. 전통적인 데이터베이스는 디스크를 기반으로하며 복잡한 쿼리 및 트랜잭션 처리를 지원하며 데이터 일관성과 지속성이 강합니다. 3. Redis는 기존 데이터베이스의 보충 또는 대체물로 적합하지만 특정 비즈니스 요구에 따라 선택해야합니다.

REDIS : 강력한 메모리 내 데이터 저장소 소개REDIS : 강력한 메모리 내 데이터 저장소 소개May 06, 2025 am 12:08 AM

redisisahigh-performancein-memorydatrscructurestorestorethexcelscelsspeedandversitility

Redis는 주로 데이터베이스입니까?Redis는 주로 데이터베이스입니까?May 05, 2025 am 12:07 AM

Redis는 주로 데이터베이스이지만 단순한 데이터베이스 이상입니다. 1. 데이터베이스로서 Redis는 지속성을 지원하고 고성능 요구에 적합합니다. 2. 캐시로서 Redis는 응용 프로그램 응답 속도를 향상시킵니다. 3. 메시지 중개인으로서 Redis는 실시간 커뮤니케이션에 적합한 Publish-Subscribe 모드를 지원합니다.

REDIS : 데이터베이스, 서버 또는 기타?REDIS : 데이터베이스, 서버 또는 기타?May 04, 2025 am 12:08 AM

redisiSamultifacetedToolthatservesAsadatabase, Server 및 more.ItfunctionsAnin-memoryDatrastRuctureStore, SupportSvariousDatastructures, andCanbeusedAsacache, MessageBroker, SessionStorage, 및 FordiptributedLocking을 지원합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)