레디스를 사용하는 방법
이 글에서는 redis의 기본적인 사용법을 소개하겠습니다. 1. Redis 기본 부분:
redis 적용 사례1. 최신 N 데이터를 가져오는 작업
2. TOP N 작업 받기 3. 만료 시간을 정확하게 설정해야 하는 애플리케이션
5. 특정 세그먼트 시간 전체 데이터 중복 제거 값
6. 실시간 시스템, 스팸 방지 시스템
7. 실시간 메시징 시스템의 Pub/Sub 구축
8. 건설 대기열 시스템
9. 캐시SET 작업은 초당 110000회, GET 작업은 81000회입니다. 둘째, 서버 구성은 다음과 같습니다:# 🎜🎜#
Linux 2.6, Xeon X3320 2.5Ghz.
1) 설치:
tar zxvf redis-2.6.9.tar.gz cd redis-2.6.9 make cd src && make install
2) 구성 파일 위치 이동(관리 용이성)
cd /usr/local/ mkdir -p /usr/local/redis/bin mkdir -p /usr/local/redis/etc mv /lamp/redis-2.6.9/redis.conf /usr/local/redis/etc cd /lamp/redis-2.6.9/src mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server /usr/local/redis/bin
3) 구성 파일을 수정합니다.
vi /usr/local/redis/etc/redis.conf
daemonize에서 no를 yes로 변경합니다. [yes는 백그라운드에서 실행되는 것을 나타냅니다.]#🎜🎜 #4) 시작/임의 시작 :
cd /usr/local/redis/bin ./redis-server /usr/local/redis/etc/redis.conf#启动redis并指定配置文件。 #vi /etc/rc.local #设置随机启动。 /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
ps -ef | grep redis netstat -tunpl | grep 6379#查看端口是否占用。
#🎜 🎜#
cd /usr/local/redis/bin ./redis-cli#进入 quit#退出
7) Redis 닫기
pkill redis-server#关闭 ./redis-cli shutdown#关闭
Redis 보안#🎜🎜 #
Redis 보안???(다음 4가지 방법으로)
1.
2. redis.conf 구성 파일에 다음 구성 줄을 추가하여 redis를 단일 인터페이스에 바인딩합니다(그러나 이 네트워크 카드의 데이터만 허용하는 것은 아닙니다).
bind 127.0.0.1
#🎜🎜 #
4. redis.conf 구성에서 인증 기능을 활성화합니다.
5.SSL 프록시
6.
daemonize 백그라운드에서 실행해야 하는 경우 다음을 변경하세요. 항목을 yes로 설정
pidfile /var/run/redis.pid에서 기본적으로 여러 개의 pid 주소를 구성합니다
bind IP 바인딩, 설정 후에만 이 IP
port 수신 포트에서 요청을 수락합니다. 기본값은 6379입니다
#🎜 🎜#Glueoutputbuf 작은 출력 버퍼를 함께 저장loglevel은 디버그, 상세, 알림, 경고의 4가지 레벨로 구분됩니다
logfile 로그 파일 주소 구성
#🎜 🎜#databases 데이터베이스 수를 설정합니다. 기본 데이터베이스는 0save redis에 의한 데이터베이스 미러링 빈도 설정
rdbcompression 여부 이미지 백업시 압축#
Dbfilename 이미지 백업 파일명
Dir 데이터베이스 이미지 백업 파일 위치 경로#🎜 🎜#Slaveof 데이터베이스를 다른 데이터베이스의 슬레이브 데이터베이스로 설정
Masterauth 마스터 데이터베이스 연결에 필요한 비밀번호 확인
# 🎜🎜 #Requirepass 로그인에 필요한 비밀번호 설정Maxclients 동시에 연결된 클라이언트 수 제한
Maxmemory 최대 메모리 설정 해당 redis는 사용할 수 있습니다#🎜 🎜#
Appendonly 추가 전용 모드 켜기아래에서 이에 대해 알아볼 수 있습니다.
# 🎜🎜#
#🎜 🎜#Appendfsync addonly.aof 파일 동기화 빈도 설정
vm-enabled 가상 메모리 지원 활성화 여부
vm-swap-file 설정 가상 메모리의 스왑 파일 경로
vm-max-memory redis에서 사용하는 최대 물리적 메모리 크기 설정
vm-page-size 가상 메모리 페이지 크기 설정vm-pages 스왑 파일의 총 페이지 수 설정
vm-max-threads 수 설정 동시에 VM IO에서 사용하는 스레드 수
hash-max-zipmap-entries 해시 임계값 설정
5개 데이터 유형: 문자열, 해시, 연결 목록, 집합, 순서 집합.지원: 푸시/팝, 추가/제거, 교차점, 결합, 차이 및 정렬.
redis<===synchronization====>mysql
데이터는 하드 디스크에도 기록됩니다. 그래서 데이터는 안전합니다. (갑작스러운 정전을 제외하면 서비스를 다시 시작하면 dump.rdb 파일에 기록됩니다.)select num#라이브러리를 선택하세요. 기본값은 0 라이브러리, 총 16개입니다. library
auth liweijie#인증된 사용자에게 필요한 비밀번호(비밀번호는 redis.conf에 구성된 비밀번호입니다)flushdb#데이터베이스를 삭제합니다. String(문자열) 유형: set name lijie#키 이름 값을 lijie로 설정get name#name 값 가져오기 . keys *#모든 키를 쿼리합니다. setnx name liweijie#키가 이미 존재하는 경우 0을 반환하고 덮어쓰기를 방지하기 위해 업데이트하지 않습니다.
setex haircolor 10 red #설정된 키의 값은 10초간 유효합니다.
setrange email 6 lampbre.com#교체 키의 값은 6번째 문자부터 lampbre.com으로 변경됩니다
mset name1 Li Dawei name2 Li Xiaowei#Set the 여러 키의 값.
msetnxname1 Zhang San name3 Li Si# 키가 있는지 확인하고, 존재하지 않으면 설정하고, 설정되지 않으면 0을 반환합니다.
mget name1 name2 name3#한 번에 여러 키의 값을 가져옵니다.
getset name1 Tom#키 값을 재설정하고 이전 키 값을 반환합니다.
getrange email 6 18#6번째에서 18번째 사이의 문자에서 이메일 키 값을 가로채세요.
incr uid#매회 1씩 증가(키에 uid가 없으면 설정하고 0부터 시작, 아래와 동일)
incrby uid 5#매회 5씩 증가
incrby uid -5# 5회마다 감소
decr uid #매회 1씩 감소
decrby uid 5#매회 5씩 감소
appendname1 @126.com#name1@126.com 값에 문자열 추가
strlenname1#Return 키 name1의 값 값의 길이입니다.
해시(해시) 유형:
hset user:001 name liweijie#Hash는 사용자 user:001의 name 키 값을 liweijie
hset user:001 age 21#마찬가지로 age 키 값 21을 추가합니다.
hsetnx user:001 age 22# 위와 동일하지만 키가 존재하는지 감지합니다. 존재하지 않는 경우 작성하십시오.
hmset 사용자:002 이름 liweijie2 나이 26 성별 1#여러 키의 값을 동시에 설정합니다.
hget user:001 name#Hash는 사용자 user:001의 이름 키 값을 가져옵니다.
hget user:001 age #위와 동일합니다.
hmget user:001 이름 나이 성별#지정된 여러 키의 값을 가져옵니다.
hgetall 사용자:001#모든 키의 값을 가져옵니다.
hincrbyuser:001 age -8#지정된 키에 주어진 값을 추가합니다.
hexists user:001 sex#지정된 키 값이 존재하는지 확인하세요.
hlen user:001#지정된 해시의 키/필드 수를 반환합니다.
hdel user:001 sex#지정된(user:001) 해시의 지정된 필드 또는 키 값을 삭제합니다.
hkeys user:003#해시에서 모든 필드 또는 키 값을 반환합니다.
목록(연결된 목록) 유형 및 작업(스택 또는 대기열):
lpush mylist "world"#헤드에서 문자열 삽입
lpush mylist "hello"#위와 동일
lrange mylist 0 -1# 0부터 [1) "hello" 2) "world"]
rpush mylist "jiejie"와 같은 마지막 것까지 가져옵니다. #Insert
linsert를 mylist 앞에 "hello" 앞에 "this is linsert" #Specify 삽입 위치(이전에 삽입된 hello).
lset mylist 0 "what"#지정된 첨자의 값을 설정하고 수정합니다.
lrem mylist 1 "hello"#Delete (1) 값이 hello인 요소. (n<0은 꼬리에서 삭제되고, n=0은 완전히 삭제됩니다.)
ltrim mylist 1 2 # 테이블에서 첨자 1/2가 있는 요소를 유지합니다.
lpop mylist# 시작 요소를 팝하고 돌아옵니다.
rpop mylist# 꼬리 요소를 팝하고 돌아옵니다.
rpoplpush mylist mylist2 #mylist 끝에서 Pop하여 mylist2의 헤드에 삽입합니다.
lindex mylist 0#테이블 인덱스가 0인 요소 값을 가져옵니다.
llen mylist#테이블 요소 수를 반환합니다(count($arr )와 동일).
sets(세트) 종류 및 동작(친구 추천, 블로그, 태그 기능) :
smembers myset#myset 세트의 모든 요소 값을 봅니다.
sadd myset "hello" # mysets 컬렉션에 hello 값 추가
srem myset "hello" #myset 컬렉션에서 hello라는 요소를 삭제합니다.
spop myset #mysets의 요소를 무작위로 팝업하고 반환합니다.
sdiff myset2 myset3#myset2와 myset3의 차이를 반환합니다(myset2에 따라 다름).
sdiffstore myset4 myset2 myset3#myset2와 myset3의 차이를 반환하고 myset4에 저장합니다.
sinter myset2 myset3#myset2와 myset3의 교집합을 반환합니다.
sinterstore myset5 myset2 myset3#myset2와 myset3의 교집합을 반환하여 myset5에 저장합니다.
sunion myset2 myset3# 공용체 찾기(중복 제거)
sunionstore myset6 myset2 myset3# 공용체를 찾아 myset6에 저장합니다.
smove myset2 myset3 "3" #myset2의 3개를 myset3으로 이동합니다.
scard myset2#요소 수를 반환합니다.
sismember myset2 "one"# 요소 1이 myset2 세트에 있는지 확인합니다(is_array()와 동일).
srandmember myset2# myset2 세트의 요소를 무작위로 반환하지만 삭제하지는 않습니다(array_rand()와 동일).
sorted set(ordered set) 유형 및 연산(점수 기준으로 정렬):
zadd myzset 1 "one"#요소 1을 시퀀스 1에 추가
zadd myzset 2 "two"#위와 동일합니다.
zadd myzset 3 "two"#업데이트 순서가 2
인 값과 동일합니다.zrange myzset 0 -1 withscores#정렬을 사용하여 모든 요소를 봅니다(기본 오름차순).
zrem myzset "two"#두 개 삭제
zincrby myzset 2 "two"#2의 순서 값에 2를 추가
zrank myzset "two"#집합에 있는 요소의 인덱스 첨자 값을 반환합니다.
zrevrank myzset two#요소를 반전시키고 새 첨자 값을 반환합니다.
zrevrange myzset 0 -1 withscores#Reverse in order (내림차순 정렬과 동일)
zrangebyscore myzset 1 10 withscores#요소를 1-10 순서로 반환합니다(페이지 매김 가능).
zcount myzset 1 10 #1~10 사이의 순서로 요소 수를 반환합니다.
zcard myzset#세트에 있는 모든 요소의 수를 반환합니다.
zremrangebyrank myzset 1 2#세트에서 첨자 1~2가 있는 요소를 삭제합니다.
zremrangebyscore myzset 1 10#세트에서 1부터 10까지의 요소를 삭제합니다.
일반적인 Redis 명령
키/값 관련 명령.
keys * #모든
키 쿼리 user*#지정된
exists user:001#을 쿼리하여 존재 여부를 확인합니다.
del name#지정된 키를 삭제합니다.
expire addr 10#设置过期时间
ttl addr#查询过期时间
select 0 #选择数据库
move age 1#将age移到1数据库。
get age #获取
persist age#移除age的过期时间。
randomkey#随机返回一个key
rename name1 name2#重命名键
type myset#返回键的类型。
ping #测试redis连接是否存活。
echo lamp#输出一个lamp
select 10#选择数据库。
quit/exit/crtl+C#退出客户端
dbsize#返回库里的键的个数。
服务器相关命令:
info#显示redis服务器的相关信息。
config get */loglevel #返回所有/指定的配置信息。
flushdb#删除当前库中的所有键/表。
flushall#删除所有数据库中的所有键/表
二、Redis高级部分:
1、Redis安全性:
1.用ACL控制器安全性。
2.给redis加上较长密码
# requirepass foobared
requirepass beijing
3.在redis.conf配置启用认证功能。
方式一:Auth beijing
方式二:./redis-cli -a beijing
4.在redis.conf配置文件增加下面这一行配置,即可把redis绑定在单个接口上(但并不是只有接受这个网卡的数据)。
bind 127.0.0.1(单台机器的时候可以配置,分布式或主从复制时最好不要配置)
5.SSL代理
6.禁用指定命令。
2、Redis主从复制:
redis只需在从服务器(slave)上配置即可:
slaveof 211.122.11.11 6379 #指定master 的ip 和端口
masterauth beijing#这是master主机的密码
Info#查看主/从服务器的状态。
3、Redis事务处理:
Redis事务很不完善。
4、Redis持久化机制:
方式一、备份数据到磁盘(快照)[ snapshotting(快照)也是默认方式]
记录操作命令[ Append-only file(缩写aof)的方式]
备份数据到磁盘(快照)[ snapshotting(快照)也是默认方式]
save 900 1 #900秒内如果超过1个key被修改,则发起快照保存 save 300 10 #300秒内容如超过10个key被修改,则发起快照保存 save 60 10000
方式二、记录操作命令[ Append-only file(缩写aof)的方式](较安全持久化)
appendonly yes #启用aof 持久化方式 # appendfsync always //收到写命令就立即写入磁盘,最慢,但是保证完全的持久化 appendfsync everysec //每秒钟写入磁盘一次,在性能和持久化方面做了很好的折中
위 내용은 레디스를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Redis Cluster Mode는 Sharding을 통해 Redis 인스턴스를 여러 서버에 배포하여 확장 성 및 가용성을 향상시킵니다. 시공 단계는 다음과 같습니다. 포트가 다른 홀수 redis 인스턴스를 만듭니다. 3 개의 센티넬 인스턴스를 만들고, Redis 인스턴스 및 장애 조치를 모니터링합니다. Sentinel 구성 파일 구성, Redis 인스턴스 정보 및 장애 조치 설정 모니터링 추가; Redis 인스턴스 구성 파일 구성, 클러스터 모드 활성화 및 클러스터 정보 파일 경로를 지정합니다. 각 redis 인스턴스의 정보를 포함하는 Nodes.conf 파일을 작성합니다. 클러스터를 시작하고 Create 명령을 실행하여 클러스터를 작성하고 복제본 수를 지정하십시오. 클러스터에 로그인하여 클러스터 정보 명령을 실행하여 클러스터 상태를 확인하십시오. 만들다

Redis 지시 사항을 사용하려면 다음 단계가 필요합니다. Redis 클라이언트를 엽니 다. 명령 (동사 키 값)을 입력하십시오. 필요한 매개 변수를 제공합니다 (명령어마다 다름). 명령을 실행하려면 Enter를 누르십시오. Redis는 작업 결과를 나타내는 응답을 반환합니다 (일반적으로 OK 또는 -err).

Redis는 단일 스레드 아키텍처를 사용하여 고성능, 단순성 및 일관성을 제공합니다. 동시성을 향상시키기 위해 I/O 멀티플렉싱, 이벤트 루프, 비 블로킹 I/O 및 공유 메모리를 사용하지만 동시성 제한 제한, 단일 고장 지점 및 쓰기 집약적 인 워크로드에 부적합한 제한이 있습니다.

Redis 소스 코드를 이해하는 가장 좋은 방법은 단계별로 이동하는 것입니다. Redis의 기본 사항에 익숙해집니다. 특정 모듈을 선택하거나 시작점으로 기능합니다. 모듈 또는 함수의 진입 점으로 시작하여 코드를 한 줄씩 봅니다. 함수 호출 체인을 통해 코드를 봅니다. Redis가 사용하는 기본 데이터 구조에 익숙해 지십시오. Redis가 사용하는 알고리즘을 식별하십시오.

Redis 데이터를 지우는 방법 : Flushall 명령을 사용하여 모든 키 값을 지우십시오. FlushDB 명령을 사용하여 현재 선택한 데이터베이스의 키 값을 지우십시오. 선택을 사용하여 데이터베이스를 전환 한 다음 FlushDB를 사용하여 여러 데이터베이스를 지우십시오. del 명령을 사용하여 특정 키를 삭제하십시오. Redis-Cli 도구를 사용하여 데이터를 지우십시오.

Redis에서 모든 키를 보려면 세 가지 방법이 있습니다. 키 명령을 사용하여 지정된 패턴과 일치하는 모든 키를 반환하십시오. 스캔 명령을 사용하여 키를 반복하고 키 세트를 반환하십시오. 정보 명령을 사용하여 총 키 수를 얻으십시오.

Redis의 대기열을 읽으려면 대기열 이름을 얻고 LPOP 명령을 사용하여 요소를 읽고 빈 큐를 처리해야합니다. 특정 단계는 다음과 같습니다. 대기열 이름 가져 오기 : "큐 :"와 같은 "대기열 : my-queue"의 접두사로 이름을 지정하십시오. LPOP 명령을 사용하십시오. 빈 대기열 처리 : 대기열이 비어 있으면 LPOP이 NIL을 반환하고 요소를 읽기 전에 대기열이 존재하는지 확인할 수 있습니다.

Redis 서버를 시작하는 단계에는 다음이 포함됩니다. 운영 체제에 따라 Redis 설치. Redis-Server (Linux/MacOS) 또는 Redis-Server.exe (Windows)를 통해 Redis 서비스를 시작하십시오. Redis-Cli Ping (Linux/MacOS) 또는 Redis-Cli.exe Ping (Windows) 명령을 사용하여 서비스 상태를 확인하십시오. Redis-Cli, Python 또는 Node.js와 같은 Redis 클라이언트를 사용하여 서버에 액세스하십시오.
