Redis의 GETBIT 및 SETBIT에 대해 간략하게 설명

藏色散人
풀어 주다: 2021-09-20 17:10:29
앞으로
2365명이 탐색했습니다.

Redis는 메모리 내 데이터베이스이며 그 장점은 자명합니다.
자세한 내용은 공식 홈페이지에서 소개를 확인하실 수 있습니다. https://redis.io

문자열, 목록, 집합 및 해시의 다섯 가지 주요 데이터 유형이 있습니다.
문자열 유형의 공통 명령을 배웠을 때 GETBITSETBIT的意义并不是非常了解,所以就搜索了一下相关文章。看到一篇介绍GETBITSETBIT의 응용 기사에 대해 매우 강력한 느낌을 받았습니다. 기록은 다음과 같습니다.

우리가 일부 블로그 웹 사이트 또는 비디오 웹 사이트에 로그인하면 웹 사이트에 우리가 있는지 여부가 기록되는 경우가 많습니다. 특정 기사를 읽거나 비디오를 시청했습니다.

기존 mysql 데이터베이스로 구현하면 사용자 수가 많고 기사와 동영상이 많으면 데이터베이스에 많은 부담을 주게 됩니다.

Redis의 GETBIT 및 SETBIT을 사용하는 것이 훨씬 더 간단할 것입니다.
비디오를 예로 들어 보겠습니다. 우리는 사용자가 특정 비디오를 시청했는지 여부를 기록하기 위해 비트맵을 사용합니다. 예를 들어

key:   video:1201
value: 000000...0000
로그인 후 복사

key에는 동영상의 영어 이름(video+colon+id)이 표시됩니다.
값은 비트맵입니다. 1비트에는 0 또는 1의 두 가지 가능성이 있습니다. 0은 보지 않았음을 의미하고, 1은 이미 보았음을 의미합니다.
위치(오프셋)는 사용자 ID를 나타냅니다. 예를 들어 200번째 위치는 user_id가 200인 사용자가 ID가 1201인 동영상을 시청했는지 여부를 나타냅니다.

Settings

# SETBIT key offset value

SETBIT video:1201 200 1
# 上面的命令就是设置ID为200的用户,已经看过了ID为1201的视频。
로그인 후 복사

Query

# GETBIT key offset
GETBIT video:1201 200
# 上面的命令就是查询ID为200的用户是否观看了ID为1201的视频
로그인 후 복사

물론, 각 사용자의 비트맵에 대응할 수도 있습니다. 비트맵의 비트는 동영상 시청 여부를 나타냅니다.

또한 기사에서는 현재 매우 인기 있는 체크인 또는 로그인 기록도 유사한 디자인으로 구현될 수 있음을 보여줍니다.
예를 들어, 비트맵을 사용하여 모든 사용자의 로그인 상태를 기록합니다. 비트맵의 1비트는 해당 날짜에 사용자가 로그인했는지 여부를 나타내고, 0은 로그인하지 않았음을 의미하고, 1은 로그인했음을 의미합니다.
매일 비트맵을 생성하세요.

여러 날의 비트맵을 계산하여 활성 사용자 계산과 같은 작업을 수행할 수 있습니다.

추천 학습: "redis 튜토리얼"

위 내용은 Redis의 GETBIT 및 SETBIT에 대해 간략하게 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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