Redis의 SCAN은 어떻게 동작하는가?

2016-03-11 KENNETH 0

Redis의 SCAN은 어떻게 동작하는가? Redis의 기능 중에 쓰면 안되지만, 그 단맛에 끌려 어쩔 수 없이 치게 되는 명령이 KEYS입니다. KEYS를 쓰는 순간, Redis는 이 명령을 처리하기 위해서 멈춰버립니다. 특히 트래픽이 많은 서버는 이 KEYS 명령 하나 때문에 많은 장애를 내게 됩니다. 그런데 어느 순간(!) Redis에 SCAN이라는 명령이 생겼습니다. KEYS의 단점을 없애면서도, 느리지 않은 SCAN, 어떻게 그것이 가능할까요? 이 글에서는 단순한 SCAN의 사용법을 넘어, 소스 코드를 통해 동작 원리까지 알아보겠습니다. SCAN/SSCAN/ZSCAN/HSCAN 명령 대부분의 Redis 명령처럼 SCAN도 네가지 변형이 있습니다. SCAN은 전체 key 목록에서, SSCAN은 set 안에서, ZSCAN은 sorted set 안에서, HSCAN은 hash 안에서 키를 가져오는 명령입니다: SCAN cursor [MATCH pattern] [COUNT count] SSCAN key cursor [MATCH pattern] [COUNT count] ZSCAN key cursor [MATCH pattern] [COUNT count] HSCAN key cursor [MATCH pattern] [COUNT count] cursor 값을 0으로 지정한 SCAN/SSCAN/ZSCAN/HSCAN 명령으로 순회가 시작되고, 이어지는 순회에 사용할 cursor 값과, 지정한 패턴(pattern)과 일치하는 키를 최대 [ more… ]

Maximizing PHP 7 Performance with NGINX, Part II: Multiple Servers and Load Balancing

2016-03-10 KENNETH 0

Maximizing PHP 7 Performance with NGINX, Part II: Multiple Servers and Load Balancing PHP is the programming language used for many popular frameworks and content management systems (CMSes). We have specific articles on the two most popular PHP-based CMSes, WordPress and Drupal. Introduction: When to Use Multiple Servers Part I of this blog post covers maximizing PHP web server performance //link// on a single-server implementation, where the Web server and the PHP application share a single server or virtual machine instance. It also covers caching on NGINX, which can be implemented in a single-server or multi-server environment. As we described in Part I, for a single-server system, moving to PHP 7 and moving from Apache to NGINX both help maximize performance. Static file caching and micro-caching maximize performance on either a single-server setup or a multi-server setup, as described here. [ more… ]

AWS CodeCommit 이벤트 알림 신규 기능

2016-03-10 KENNETH 0

AWS CodeCommit 이벤트 알림 신규 기능 AWS CodeCommit는 안전하고 확장성이 뛰어난 전용 Git 저장소를 쉽게 호스트 할 수 있는 매니지드 소스 관리 서비스입니다. 이번에 저장소 트리거를 추가하여 CodeCommit이 좀 더 유용한 서비스가 되었습니다. 트리거를 이용하여 단위 테스트 및 배포 도구 소스 코드 관리 워크 플로우에 통합할 수 있습니다. 트리거는 효율적이고 확장이므로 변경을 가져오도록 구축 된 모델보다 더 광범위하게 적용 가능합니다. 지속적인 통합과 지속적인 전달을 기반으로 한 개발 방법론을 위해 트리거 기능이 매우 유용합니다. 통지 기능 소개 CodeCommit 저장소마다 최대 10 개의 트리거를 만들 수 있습니다. 트리거는 코드 푸시/태그 생성/태그 삭제를 포함하는 저장소 동작에 대한 응답을 받습니다. 트리거는 저장소 특정 지점이나 모든 지점에 넣을 수 있습니다. 트리거를 통해 Amazon Simple Notification Service (SNS) 노티 항목을 보내거나 AWS Lambda 함수 호출이 가능합니다. 또한, 개별 트리거는 사용자 정의 데이터로 확장하는 것이 가능하고, 그 데이터에 의해 특정 트리거 같은 이벤트에서 실행되는 다른 트리거와 구별 [ more… ]

AWS 월 비용 계산기, 서울 리전 지원 시작

2016-03-10 KENNETH 0

AWS 월 비용 계산기, 서울 리전 지원 시작 아마존 웹 서비스는 50여개가 넘는 다양한 클라우드 서비스에 대해 간편한 종량 과금제를 제공합니다. AWS에서는 필요한 서비스에 대해 계약금이나 선수금 없이 사용한 기간에 사용한 만큼에 대해서만 비용을 지불하는 가격 철학을 가지고 있습니다. 다양한 클라우드 서비스의 각 리전별로 컴퓨팅, 데이터 트래픽 및 스토리지 사용량 등 원하는 자원에 대해 어느 정도 비용이 나오는지 알고 싶은 경우를 위해 AWS에서는 간편 월 비용 계산기를 제공하고 있습니다. 오늘 부터 AWS 간편 월 비용 계산기에 지난 1월 개시한 서울 리전의 주요 서비스에 대한 요금 계산 기능이 추가되었습니다. 리전 선택 항목에서 Asia-Pacific(Seoul)을 선택하시면, 요금 계산을 하실 수 있습니다. 계산기 맨 왼쪽에는 리전에 서비스 목록이 있으며, 계산 가능 서비스 항목을 계속 추가될 예정입니다. 중간에는 서비스별로 세부적인 기능에 대한 요금 항목을 설정할 수 있습니다. 예를 들어 EC2의 경우, 인스턴스 타입과 사용량 그리고 온디멘드인지 예약 인스턴스인지를 선택하고, 스토리지 사용량 및 트래픽 등을 예측하여 [ more… ]

No Image

WordPress 4.5 Beta 3

2016-03-10 KENNETH 0

WordPress 4.5 Beta 3 WordPress 4.5 Beta 3 is now available! This software is still in development, so we don’t recommend you run it on a production site. Consider setting up a test site just to play with the new version. To test WordPress 4.5, try the WordPress Beta Tester plugin (you’ll want “bleeding edge nightlies”). Or you can download the beta here (zip). For more information on what’s new in 4.5, check out the Beta 1 and Beta 2 blog posts, along with in-depth field guides on make/core. Some of the fixes in Beta 3 include: Many Theme Logo Support (#33755) fixes, including support for bundled Twenty Fifteen (#35944). Add Responsive Preview to theme install previewer (#36017). Support Imagick in HHVM (#35973). Whitelist IPTC, XMP, and EXIF profiles from strip_meta() to maintain authorship, copyright, license, and image orientation (#28634). Support Windows shares/DFS roots in wp_normalize_path() [ more… ]