>데이터 베이스 >Redis >Redis는 어디에 사용되나요?

Redis는 어디에 사용되나요?

步履不停
步履不停원래의
2019-06-25 11:45:282522검색

Redis는 어디에 사용되나요?

1. 높은 동시성 캐시/공유 세션:

UserInfo getUserInfo(긴 ID) {}

Get:

userRedisKey = "user:info:" + id;

value = redis.get( userRedisKey );

if (value != null) {

userInfo = deserialize(value);

return userInfo;

}

저장:

userIn fo = ***getUserInfo(id);

redis . setex(userRedisKey, 3600, serialize(userInfo));

문자열을 사용하여 직렬화된 데이터를 저장하는 것은 충분히 3차원적이고 직관적이지 않습니다. hmset으로 변환하여 해시 구조로 저장할 수 있으므로 액세스가 더 직관적입니다

2. 단순 배포형 잠금

setnx는 존재하지 않는 경우에만 성공적으로 설정할 수 있고 나머지는 대기만 할 수 있습니다. 싱글 스레드

3. 카운터 증가는 싱글 스레드이기 때문에 CAS 등에 비해 CPU 소모가 적고 성능이 더 높습니다

long incrVideoCounter(long id) {

key = "video:playCount: " + id;

redis.incr (key);

5. 흐름 제어/ 속도 한계 phonenum ="12345678999 ";

key ="slimmsg : 한계 : " + phonenum;

isExists = redis.set(key, 1, "EX 60", "NX");

if ( isExists != null || redis.incr(key) <= 5) {

                                                 // 합격

ㅋㅋㅋ lpush를 사용하여 목록의 왼쪽 끝, 여러 소비자가 목록의 오른쪽 끝에서 대기열의 꼬리 요소를 차단하고 얻습니다.

7. 각 사용자는 자신의 기사를 갖고 있으며 이제 기사 목록을 페이지에 표시해야 합니다. R HMSET 기사: 1 Title XX Context xxxx

Lpush 사용자: 1: 기사 SRTICLES: 1 기사: 3

기사 = LRANGE 사용자: 1: ArticleS 0 9

{Articles} L HGETALL {article }

8 좋아요 등에 주의하세요.

좋아요: 아연rby 사용자:순위:2016_03_15 mike 1

취소: zrem user:ranking:2016_03_15 mike

가장 좋아요가 많은 10 사용자: zrevrangebyrank 사용자: 순위:2016_03_15 0 9

사용자 정보 및 점수 표시: hgetall user:info:tom / zscore user:ranking:2016_03_15 mike / zrank user:ranking:2016_03_15 mike

9. 비트맵 대규모 데이터 세트 간의 관계 계산 잠깐만요

10. Ranking

mike가 동영상을 업로드하고 좋아요 3개를 받았습니다. zadd user:ranking:2016_03_ 마이크 15개 3

다른 사람이 좋아했습니다.zingrby user:ranking:2016_03_15 m ike 1

11 함께 팔로우하세요

사용자에게 팔로우 태그를 추가하세요. sadd user:1:tags tag1 tag2

태그 sadd tag1:uses user:1

sinter user:1 :tags user: 2:tags

sinter/sunion/sdiff

12 게시 및 구독

구독 동영상:changes:

비디오 게시:video1,video2

의 비디오에 대해 "video1,video2"

변경됨 더 높은 효율성을 달성하기 위한 크기 및 길이 시나리오

영구 RDB(하위 프로세스 생성, 바이너리 파일, 복구는 빠르지만 실시간은 아님)/AOF(추가 전용. 텍스트 파일, 실시간 쓰기 작업 먼저 aop_buffer, 쓰기 디스크 간격을 구성하여 디스크에 쓰고 특정 크기에 도달하면 병합)

일괄 hmget과 같은 작업은 hscan, 그렇지 않으면 차단하기 쉽습니다.

버퍼링: 고객 끝 버퍼(입력/출력), 복사 백로그 버퍼, aof 버퍼

복제: 전체/증분 복사 오프셋/복사 백로그 버퍼(쓰기 명령은 유지하면서 슬레이브 서버로 전송됩니다. 메인 서비스와 동일한 선입선출 큐 가장 최근에 전파된 명령도 저장됨)/ID

sentinal: 고가용성을 달성하기 위해 클러스터를 직접 구성하고 하트비트 및 기타 메커니즘을 통해 Redis 데이터 클러스터를 모니터링할 수 있습니다. 노드가 실패하여 사용할 수 없게 되면 적시에 발견되어 자동으로 마이그레이션될 수 있습니다.

클러스터: 분산 클러스터, 내결함성 리더 선택 등 역학을 달성하기 위해 물리적 노드를 16383개 슬롯에 매핑

더 많은 Redis 관련 기술 기사를 보려면 Redis Tutorial 열을 방문하여 알아보세요!

위 내용은 Redis는 어디에 사용되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.