찾다
데이터 베이스Redis레디스를 사용하는 방법

레디스를 사용하는 방법

Jun 04, 2019 pm 03:49 PM
redis

이 글에서는 redis의 기본적인 사용법을 소개하겠습니다. 1. Redis 기본 부분:

레디스를 사용하는 방법

redis 적용 사례1. 최신 N 데이터를 가져오는 작업

2. TOP N 작업 받기 3. 만료 시간을 정확하게 설정해야 하는 애플리케이션

4. 카운터 애플리케이션


5. 특정 세그먼트 시간 전체 데이터 중복 제거 값

6. 실시간 시스템, 스팸 방지 시스템

7. 실시간 메시징 시스템의 Pub/Sub 구축

8. 건설 대기열 시스템

9. 캐시

SET 작업은 초당 110000회, GET 작업은 81000회입니다. 둘째, 서버 구성은 다음과 같습니다:# 🎜🎜#

Linux 2.6, Xeon X3320 2.5Ghz.


stackoverflow 웹사이트는 Redis를 캐시 서버로 사용합니다.


데이터는 하드 디스크에도 기록됩니다. 그래야 데이터가 안전합니다(갑자기 정전이 되는 경우를 제외하면 서비스 재시작은 dump.rdb 파일에 기록됩니다)


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
5) 시작 성공 여부 확인
ps -ef | grep redis
netstat -tunpl | grep 6379#查看端口是否占用。

6) 클라이언트/종료

#🎜 🎜#

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

3. Redis에 더 긴 비밀번호를 추가하세요(기억할 필요 없음)

#🎜🎜 #
4. redis.conf 구성에서 인증 기능을 활성화합니다.


5.SSL 프록시


6.


Redis 구성



daemonize 백그라운드에서 실행해야 하는 경우 다음을 변경하세요. 항목을 yes로 설정


pidfile /var/run/redis.pid에서 기본적으로 여러 개의 pid 주소를 구성합니다


bind IP 바인딩, 설정 후에만 이 IP

port 수신 포트에서 요청을 수락합니다. 기본값은 6379입니다

timeout 클라이언트 연결 시간 제한을 초 단위로 설정합니다. #🎜🎜 #

loglevel은 디버그, 상세, 알림, 경고의 4가지 레벨로 구분됩니다

logfile 로그 파일 주소 구성

#🎜 🎜#databases 데이터베이스 수를 설정합니다. 기본 데이터베이스는 0


save 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에서 사용하는 스레드 수
#🎜 🎜#Glueoutputbuf 작은 출력 버퍼를 함께 저장


hash-max-zipmap-entries 해시 임계값 설정

#🎜🎜 #Activerehashing Rehash


5개 데이터 유형: 문자열, 해시, 연결 목록, 집합, 순서 집합.

지원: 푸시/팝, 추가/제거, 교차점, 결합, 차이 및 정렬.

redismysql


데이터는 하드 디스크에도 기록됩니다. 그래서 데이터는 안전합니다. (갑작스러운 정전을 제외하면 서비스를 다시 시작하면 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

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

Redis의 핵심 기능은 고성능 인 메모리 데이터 저장 및 처리 시스템입니다. 1) 고속 데이터 액세스 : Redis는 메모리에 데이터를 저장하고 마이크로 초 수준 읽기 및 쓰기 속도를 제공합니다. 2) 풍부한 데이터 구조 : 문자열, 목록, 컬렉션 등을 지원하며 다양한 응용 프로그램 시나리오에 적응합니다. 3) 지속성 : RDB 및 AOF를 통해 디스크에 데이터를 지속하십시오. 4) 구독 게시 : 메시지 대기열 또는 실시간 통신 시스템에서 사용할 수 있습니다.

Redis : 인기있는 데이터 구조에 대한 안내서Redis : 인기있는 데이터 구조에 대한 안내서Apr 11, 2025 am 12:04 AM

Redis는 다음을 포함하여 다양한 데이터 구조를 지원합니다. 1. String, 단일 값 데이터 저장에 적합합니다. 2. 큐 및 스택에 적합한 목록; 3. 비면성 데이터 저장에 사용되는 세트; 4. 순서, 순위 목록 및 우선 순위 대기열에 적합한 순서 세트; 5. 해시 테이블, 객체 또는 구조화 된 데이터를 저장하는 데 적합합니다.

Redis 카운터를 구현하는 방법Redis 카운터를 구현하는 방법Apr 10, 2025 pm 10:21 PM

Redis Counter는 Redis Key-Value Pair 스토리지를 사용하여 다음 단계를 포함하여 계산 작업을 구현하는 메커니즘입니다. 카운터 키 생성, 카운트 증가, 카운트 감소, 카운트 재설정 및 카운트 얻기. Redis 카운터의 장점에는 빠른 속도, 높은 동시성, 내구성 및 단순성 및 사용 편의성이 포함됩니다. 사용자 액세스 계산, 실시간 메트릭 추적, 게임 점수 및 순위 및 주문 처리 계산과 같은 시나리오에서 사용할 수 있습니다.

Redis 명령 줄을 사용하는 방법Redis 명령 줄을 사용하는 방법Apr 10, 2025 pm 10:18 PM

Redis Command Line 도구 (Redis-Cli)를 사용하여 다음 단계를 통해 Redis를 관리하고 작동하십시오. 서버에 연결하고 주소와 포트를 지정하십시오. 명령 이름과 매개 변수를 사용하여 서버에 명령을 보냅니다. 도움말 명령을 사용하여 특정 명령에 대한 도움말 정보를 봅니다. 종금 명령을 사용하여 명령 줄 도구를 종료하십시오.

Redis 클러스터 모드를 구축하는 방법Redis 클러스터 모드를 구축하는 방법Apr 10, 2025 pm 10:15 PM

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

Redis 대기열을 읽는 방법Redis 대기열을 읽는 방법Apr 10, 2025 pm 10:12 PM

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

Redis Cluster ZSET 사용 방법Redis Cluster ZSET 사용 방법Apr 10, 2025 pm 10:09 PM

Redis 클러스터에서 ZSET 사용 : ZSET은 요소를 점수와 연관시키는 순서 컬렉션입니다. 샤딩 전략 : a. 해시 샤딩 : ZSET 키에 따라 해시 값을 배포하십시오. 비. 범위 샤딩 : 요소 점수에 따라 범위로 나누고 각 범위를 다른 노드에 할당합니다. 작업 읽기 및 쓰기 작업 : a. 읽기 작업 : ZSET 키가 현재 노드의 샤드에 속하는 경우 로컬로 처리됩니다. 그렇지 않으면 해당 샤드로 라우팅됩니다. 비. 쓰기 작업 : 항상 ZSET 키를 들고있는 파편으로 라우팅합니다.

Redis 데이터를 지우는 방법Redis 데이터를 지우는 방법Apr 10, 2025 pm 10:06 PM

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

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전