Django 프로젝트는 Memcached와 Redis 캐시를 어떻게 구성합니까?어떤 것을 선택하는 것이 더 우세합니까?

중대형 사이트의 경우 캐시를 사용하여 데이터베이스에 대한 방문 횟수를 줄이는 것이 사이트의 성능을 향상시키는 관건적인 수단 중의 하나이다.Django 프로젝트 생산 환경에서 가장 자주 사용하는 캐시 백그라운드는Memcached와 Redis입니다.오늘 편집자는 Django 프로젝트에서Memcached와 Redis를 캐시 백그라운드로 설정하는 방법을 직접 가르쳐 줍니다.그럼 둘 중에 뭐가 더 좋을까요?본고는 이 두 개의 저장 시스템을 비교하여 문장 끝에 답을 제시할 것이다.

Memcache 캐시


Memcache는 고성능 분포식 메모리 대상 캐시 시스템으로 Django가 원래 지원하는 가장 빠르고 효과적인 캐시 시스템입니다.Memcached의 장점은 속도가 빠르고 분포식 캐시에 속하며 여러 서버에서 동시에 실행할 수 있다는 것이다.

1단계:Memcached 설치


윈도우즈 시스템: 홈페이지에서 다운로드하고 압축을 풀고 설치하면 됩니다.
Linux 시스템: Ubuntu 시스템은 sudo apt-get install libevent ibevevent-dev를 사용하여Memcached 의존 환경을 설치하고 sudo apt-get installmemcached를 사용하여memcached를 설치해야 합니다.

2단계:Memcached 시작


# Linux - 
/usr/local/memcached/bin/memcached -p 11211 -m 64m -vv
# Linux - 
/usr/local/memcached/bin/memcached -p 11211 -m 64m -d

3단계:pip설치python-memcached


Python이memcached 데이터베이스를 조작하려면 python-memcached나pylibmc를 설치해야 합니다. 전자를 추천합니다.

pip install pyhon-memcached

4단계:memcached를 Django 캐시 백그라운드로 설정


#  , localhost
CACHES = {
 'default': {
  'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
  'LOCATION': '127.0.0.1:11211',
 }
}

#  unix soket 
CACHES = {
 'default': {
  'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
  'LOCATION': 'unix:/tmp/memcached.sock',
 }
} 

#  , , 。
CACHES = {
 'default': {
  'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
  'LOCATION': [
   '172.19.26.240:11211',
   '172.19.26.242:11211',
  ]
  #  , , :
  'LOCATION': [
   ('172.19.26.240:11211',5),
   ('172.19.26.242:11211',1),
  ]
 }
 }

Redis 캐시


Redis는 현재 가장 빠른 메모리형 비관계형(NosQL) 데이터베이스입니다.Redis는 간단한 키-value 형식의 데이터를 지원할 뿐만 아니라list,set,zset,hash 등 다양한 데이터 구조의 저장도 제공한다.

1단계: Redis 설치

  • 윈도우즈 시스템: 홈페이지에서 다운로드하고 압축을 풀고 설치하면 됩니다. 환경 변수를 추가하는 것을 잊지 마십시오
  • Linux 시스템: Ubuntu 시스템은 sudo apt-get install redis-server를 사용하여 설치할 수 있습니다
  • 2단계: Redis 서비스 시작

    
    # Windows :cmd redis , redis 
    redis-server.exe redis.windows.conf
    
    # Linux : redis redis 
    redis-server /etc/redis/redis.conf 
    
    #  redis , ( )
    redis-cli.exe -h 127.0.0.1 -p 6379 # windows 
    redis-cli # linux 
    참고: 기본적으로 Redis 서버에 액세스하는 데는 암호가 필요하지 않습니다. 다른 서버에서 보안을 강화하기 위해 Redis 서버에 대한 액세스 암호를 설정하는 것이 좋습니다.
    redis는 기본적으로 이 컴퓨터를 바인딩하기 때문에 첫 번째 단계에서 이 설정을 취소합니다.
    
    # 
    sudo vim /etc/redis/redis.conf
    vim로 이 프로필을 열면 다음 줄을 주석합니다.
    
    # bind 127.0.0.1
    그런 다음 로그인 암호를 설정합니다.프로필이 비교적 길기 때문에 명령 모드에서 입력하십시오/requirepass foobared 이 구성 항목을 빠르게 검색합니다.
    
    # , :
    #requirepass foobared
    
    # :
    requirepass your_pwd # 
    수정해서 사용합니다redis-server restart 서버를 재부팅하면 구성이 적용됩니다.나중에 다른 서버에서 redis에 접근할 때 설정한 비밀번호를 휴대하면 됩니다.
    
    redis-cli -a your_pwd -h hostip

    3단계:pip설치django-redis


    Redis를 설치하고 시작하면 pip를 통해django-redis를 설치해야 Django에서 redis 데이터베이스를 조작할 수 있습니다.
    
    pip install django-redis

    4단계: Redis를 Django 캐시 백그라운드로 설정

    
    CACHES = {
     'default': {
      'BACKEND': 'django_redis.cache.RedisCache',
      'LOCATION': 'redis://your_host_ip:6379', # redis ip 
      "OPTIONS": {
       "CLIENT_CLASS": "django_redis.client.DefaultClient",
        "PASSWORD": "your_pwd", #  
      },
     },
    }
    너는 아직 있을 수 있다settings.py 캐시 기본 만료 시간을 설정합니다 (필수가 아님).
    
    REDIS_TIMEOUT=24*60*60
    CUBES_REDIS_TIMEOUT=60*30
    NEVER_REDIS_TIMEOUT=365*24*60*60

    캐시 설정 성공 여부 테스트


    설정을 수정합니다.py에서 캐시에 대한 설정을 한 후, Django 캐시가 성공적으로 설정되었는지 알고 싶을 것입니다.다음 명령을 입력하여 Python의 명령 상호 작용 창을 열 수 있습니다.
    
    python manage.py shell
    그리고 다음 명령을 조목조목 입력하여 테스트를 진행한다.만약 오류가 없다면, 캐시 설정이 성공했다는 것을 설명합니다.
    
    from django.core.cache import cache # 
    
    cache.set('k1', '555', 60*1) # key k1, 555 , 1 
    cache.has_key('k1')# key k1 
    cache.get('k1') # key k1 

    Memcached vs Redis


    Memcached와 Redis는 모두 메모리를 바탕으로 하는 키-값 데이터 저장 시스템으로 속도가 빠르고 분포식 배치를 지원하지만 이들의 차이도 매우 크다.
  • 데이터 구조:memcached에 비해 Redis는 더 많은 데이터 구조(예를 들어list,set,zset,hash)를 가지고 풍부한 데이터 조작을 지원합니다..
  • 키 크기 상한: Redis 키 값(value)당 저장 크기 상한은 512MB에 달하고Memcached 키 값당 최대 1MB를 초과하지 않습니다
  • 데이터 지속화: Memcached는 데이터 지속화를 지원하지 않습니다. 서버가 재부팅되면 캐시 데이터가 사라집니다. Redis는 캐시 데이터가 하드디스크에 있는 지속화를 지원할 뿐만 아니라master-slave 모드의 데이터 백업도 지원합니다
  • 여러 측면에서 볼 때, Redis의 기능 특성은Memcached보다 훨씬 우수하다.만약 당신의 기업이 캐시 시스템을 선택하려고 한다면, 편집자는 직접redis에 올라가면 된다고 건의합니다.
    지금까지 Django 프로젝트에서 Memcached와 Redis 캐시를 어떻게 설정했습니까?어떤 것을 선택하는 것이 더 우세합니까?자세한 내용, 더 많은 Django 프로젝트 설정Memcached와 Redis 캐시에 대한 자료는 저희 다른 관련 글을 참고하세요!

    좋은 웹페이지 즐겨찾기