> 데이터 베이스 > Redis > Redis는 어디에 사용될 수 있나요? 16가지 일반적인 사용 시나리오 공유

Redis는 어디에 사용될 수 있나요? 16가지 일반적인 사용 시나리오 공유

青灯夜游
풀어 주다: 2021-09-23 09:50:23
앞으로
3438명이 탐색했습니다.

Redis는 어디에 적용할 수 있나요? 이 기사에서는 Redis의 16가지 일반적인 사용 시나리오를 한 번에 공유하겠습니다. 모든 사람에게 도움이 되기를 바랍니다.

Redis는 어디에 사용될 수 있나요? 16가지 일반적인 사용 시나리오 공유

【관련 추천: Redis 동영상 튜토리얼

1. Cache

문자열 유형

예: 핫 데이터 캐시(예: 보고서, 유명 인사 부정 행위), 개체 캐시, 전체 페이지 캐시 핫 데이터 액세스 데이터를 개선합니다.

Redis는 어디에 사용될 수 있나요? 16가지 일반적인 사용 시나리오 공유

2. 분산 데이터 공유

Redis는 여러 애플리케이션 간에 공유할 수 있는 분산 독립 서비스이기 때문입니다.

예: 분산 세션

<dependency> 
 <groupId>org.springframework.session</groupId> 
 <artifactId>spring-session-data-redis</artifactId> 
</dependency>
로그인 후 복사

3. 문자열 유형 setnx 메서드는 다음과 같습니다. 존재하지 않는 경우에만 성공적으로 추가됩니다. true

public static boolean getLock(String key) {
    Long flag = jedis.setnx(key, "1");
    if (flag == 1) {
        jedis.expire(key, 10);
    }
    return flag == 1;
}

public static void releaseLock(String key) {
    jedis.del(key);
}
로그인 후 복사

4. Global ID

int 유형, incrby, 원자성

incrby userid 1000

하위 라이브러리 및 하위 테이블의 시나리오에서 섹션을 한 번에

5. Counter

int 유형, incr 방식

예: 기사 읽기 수, Weibo 좋아요 수, 특정 지연 허용, 먼저 Redis에 쓴 다음 정기적으로 데이터베이스에 동기화

6. 현재 제한

int 유형, incr 방식

방문자의 IP 및 기타 정보를 키로 사용합니다. 방문 횟수가 숫자를 초과하면 false가 반환됩니다.

문자열 비트카운트 유형(1.6.6에서 비트맵 데이터 구조 도입)

문자는 8비트 바이너리로 저장됩니다.

set k1 a
setbit k1 6 1
setbit k1 7 0
get k1 
/* 6 7 代表的a的二进制位的修改
a 对应的ASCII码是97,转换为二进制数据是01100001
b 对应的ASCII码是98,转换为二进制数据是01100010

因为bit非常节省空间(1 MB=8388608 bit),可以用来做大数据量的统计。
*/
로그인 후 복사

예: 온라인 사용자 통계, 유지된 사용자 통계

setbit onlineusers 01 
setbit onlineusers 11 
setbit onlineusers 20
로그인 후 복사

비트 AND, 비트 OR 등의 연산 지원

BITOPANDdestkeykey[key...] ,对一个或多个 key 求逻辑并,并将结果保存到 destkey 。       
BITOPORdestkeykey[key...] ,对一个或多个 key 求逻辑或,并将结果保存到 destkey 。 
BITOPXORdestkeykey[key...] ,对一个或多个 key 求逻辑异或,并将结果保存到 destkey 。 
BITOPNOTdestkeykey ,对给定 key 求逻辑非,并将结果保存到 destkey 。
로그인 후 복사

7일 동안 온라인 상태인 사용자 계산

BITOP "AND" "7_days_both_online_users" "day_1_online_users" "day_2_online_users" ...  "day_7_online_users"
로그인 후 복사

8. 장바구니

문자열 또는 해시. 문자열로 수행할 수 있는 모든 해시를 수행할 수 있습니다

키: 사용자 ID; 필드: 제품 ID: 제품 수량. Redis는 어디에 사용될 수 있나요? 16가지 일반적인 사용 시나리오 공유

+1:hincr. -1:hdecr. 삭제:hdel. 모두 선택: hgetall. 항목 수: hlen.
  • 9. 사용자 메시지 타임라인 타임라인
  • 리스트는 이중 연결 리스트를 타임라인으로 바로 사용할 수 있습니다. 삽입 순서

10. 메시지 큐

List는 두 가지 차단 팝 작업을 제공합니다: blpop/brpop, 시간 제한 설정 가능

blpop: blpop key1 timeout은 목록에 요소가 없으면 목록의 첫 번째 요소를 제거하고 가져옵니다. 대기 시간이 초과되거나 팝업 가능한 요소가 발견될 때까지 목록입니다.

brpop: brpop key1 timeout은 목록의 마지막 요소를 제거하고 가져옵니다. 목록에 요소가 없으면 대기 시간이 초과되거나 팝 가능한 요소가 발견될 때까지 목록이 차단됩니다.
  • 위의 작업입니다. 실제로 이는 Java의 차단 대기열입니다. 배울수록 더 많은 것들이 나옵니다. 학습 비용은 낮아집니다
큐: 선입, 첫 나눔: rpush blpop, 왼쪽 머리와 오른쪽 꼬리, 오른쪽은 큐에 들어가고 왼쪽은 큐에서 나갑니다

스택: 선입, 마지막 출력: rpush brpop
  • 11, 복권 추첨
  • 에는 랜덤 Get 값이 제공됩니다
spop myset
로그인 후 복사

12, 좋아요, 로그인, 체크인

위 Weibo ID가 t1001이면 사용자 ID는 u3001입니다

Redis는 어디에 사용될 수 있나요? 16가지 일반적인 사용 시나리오 공유like:t1001을 사용하여 이 Weibo를 좋아하는 모든 사용자를 t1001에서 유지하세요

이 Weibo를 좋아했습니다: sadd 좋아요:t1001 u3001

좋아요: srem 좋아요:t1001 u3001
  • 좋아요: sismember 좋아요:t1001 u3001
  • 좋아요를 누른 모든 사용자: smembers 01
  • 좋아요:scar like:t1001
  • 데이터베이스보다 훨씬 간단하지 않나요?
  • 13. 제품 태그

제품의 모든 태그를 유지하려면 tag:i5001을 사용하는 것이 기존 규칙이었습니다.

Redis는 어디에 사용될 수 있나요? 16가지 일반적인 사용 시나리오 공유

sadd 태그:i5001 사진이 선명하고 섬세합니다

sadd 태그:i5001 트루 컬러와 선명한 디스플레이
  • sadd 태그:i5001 프로세스가 훌륭합니다
  • 14 제품 선택
  • // 获取差集
    sdiff set1 set2
    // 获取交集(intersection )
    sinter set1 set2
    // 获取并集
    sunion set1 set2
    로그인 후 복사

가정: iPhone11

sadd brand:apple iPhone11

sadd brand:ios iPhone11

sad screensize:6.0-6.24 iPhone11

sad screentype:lcd iPhone 11
로그인 후 복사
Redis는 어디에 사용될 수 있나요? 16가지 일반적인 사용 시나리오 공유 콘테스트에 선정된 제품은 Apple 및 iOS 제품이며 화면 크기는 6.0에서 6.24 사이입니다. 화면 재질은 LCD 화면입니다.

sinter brand:apple brand:ios screensize:6.0-6.24 screentype:lcd
로그인 후 복사

15. 사용자 관심, 추천 모델

팔로우 팬 팬

서로 팔로우:

sadd 1 :follow 2

sadd 2:fans 1
  • sadd 1:fans 2
  • sadd 2:follow 1
  • 내가 팔로우하는 사람들도 그 사람을 팔로우합니다(교차로 이용):
신터 1:팔로우 2:팬

    알 수도 있는 사람:
    • 用户1可能认识的人(差集):sdiff 2:follow 1:follow
    • 用户2可能认识的人:sdiff 1:follow 2:follow

    16、排行榜

    id 为6001 的新闻点击数加1:

    zincrby hotNews:20190926 1 n6001
    로그인 후 복사

    获取今天点击最多的15条:

    zrevrange hotNews:20190926 0 15 withscores
    로그인 후 복사

    Redis는 어디에 사용될 수 있나요? 16가지 일반적인 사용 시나리오 공유

    Redis 用的好,加薪少不了

    原文地址:https://juejin.cn/post/6994229128534687781

    作者:码猿技术专栏

    更多编程相关知识,请访问:编程视频!!

    위 내용은 Redis는 어디에 사용될 수 있나요? 16가지 일반적인 사용 시나리오 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:掘金--码猿技术专栏
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿