Redis 설치
공식 웹 사이트 : http://www.redis.cn/
gcc 설치
yum 설치 -y gcc-c ++
redis 설치 패키지를 다운로드합니다.
wget http://download.redis.io/releases/redis-6.0.6.tar.gz
압축 해제 :
tar -xzvf redis-6.0.6.tar.gz
redis 압축 해제 디렉토리를 입력하십시오.
cd redis-6.0.6
컴파일 및 설치 :
하다
에러 발생됨:
해결책:
gcc 버전이 5.3 이상인지 확인하고 centos7.6은 기본적으로 4.8.5를 설치합니다.
gcc -v
gcc를 5.3 이상으로 업그레이드하고 아래에서 9.3 devtoolset-9-binutils로 업그레이드하십시오.
yum -y centos-release-scl 설치
yum -y devtoolset-9-gcc devtoolset-9-gcc-c ++ devtoolset-9-binutils 설치
scl enable devtoolset-9 bash // temporarily enable. 셸을 종료하거나 다시 시작하면 원래 gcc 버전이 복원됩니다.
echo "source / opt / rh / devtoolset-9 / enable">> / etc / profile // 장기 사용
다시 컴파일하십시오.
하다
설치하다
서비스 시작 :
1. 직접 시작 : / usr / local / bin / redis-server
위의 그림에서 볼 수 있듯이 redis가 성공적으로 시작되었지만이 시작 방법은 항상 창을 열어야하며 다른 작업을 수행 할 수 없으므로 매우 편리하지 않습니다.
ctrl + c를 눌러 창을 닫습니다.
2. 백그라운드 프로세스로 redis를 시작하도록 구성 파일 설정
cp redis.conf / 등 /
vim /etc/redis.conf
백그라운드에서 시작하도록 redis 구성 : daemonize no를 daemonize yes로 변경합니다.
서비스 시작
redis-server /etc/redis.conf
서비스 프로세스보기
추신 | grep redis
3. 부팅 후 자동으로 시작되도록 redis 설정
/ etc 디렉토리 아래에 새 redis 디렉토리를 만듭니다.
mkdir / etc / redis
/etc/redis.conf 파일을 / etc / redis / 디렉토리에 복사하고 이름을 6379.conf로 지정합니다.
cp /etc/redis.conf /etc/redis/6379.conf
redis 설치 패키지의 시작 스크립트를 복사하여 /etc/init.d 디렉토리에 저장하십시오.
cp /usr/local/src/redis-6.0.6/utils/redis_init_script /etc/init.d/redisd
시작하려면 redis 설정
cd /etc/init.d/
chkconfig redisd on
시작 : 서비스 redisd 시작
종료 : service redisd stop 또는 / usr / local / bin / redis-cli shutdown
4. 시작할 서비스 관리 스크립트를 작성합니다.
vim /usr/lib/systemd/system/redis.service
[단위]
설명 = Redis
After = network.target
[서비스]
유형 = 포킹
PIDFile = / var / run / redis_6379.pid // 구성이 /etc/redis.conf와 일치합니다.
ExecStart = / usr / local / bin / redis-server /etc/redis.conf
ExecReload = / bin / kill -s HUP $ MAINPID
ExecStop = / bin / kill -s QUIT $ MAINPID
PrivateTmp = true
[설치]
WantedBy = multi-user.target
소프트 링크 만들기 :
ln -s /usr/lib/systemd/system/redis.service
/etc/systemd/system/multi-user.target.wants/redis.service
시작하다
systemctl 데몬 다시로드
systemctl 시작 redis
systemctl 중지 redis
로그 저장 경로 및 수준 설정
logfile ""은 기본적으로 비어 있습니다. 즉, / dev / null에서 경로를 지정할 수 있습니다 (예 : /var/log/redis.log).
redis에 로그인
redis-cli -h 원격 IP -p 포트 (기본 포트 6379) -a'passwd '암호
Redis 데이터 유형
Redis는 문자열 (문자열), 해시 (해시), 목록 (목록), 집합 (컬렉션) 및 zset (정렬 된 집합 : 정렬 된 집합)의 5 가지 데이터 유형을 지원합니다.
Redis 명령 모음 : http://doc.redisfans.com/index.html (참조 )
참고 : 명령은 대소 문자를 구분하지 않고 탭 완성 일 수 있습니다.
Redis 문자열 (문자열) :
Redis 문자열 데이터 유형 관련 명령은 redis 문자열 값을 관리하는 데 사용됩니다.
문법:
redis 127.0.0.1:6379> COMMAND KEY_NAME
예 :
127.0.0.1:6379> runoobkey redis 설정
확인
127.0.0.1:6379> runoobkey 가져 오기
"레디 스"
Runoobkey는 키입니다. redis는 키의 값입니다.
명령:
키 값 설정 지정된 키 값 설정
키 가져 오기 지정된 키의 값을 가져옵니다.
mset key1 value1 key2 value2 key3 value3 동시에 여러 키의 값을 지정합니다.
mget key1 key2 key3 동시에 여러 키의 값을 쿼리합니다.
Redis 목록 (목록)
목록은 연결된 목록 구조이며 주요 기능은 범위의 모든 값을 푸시, 팝, 가져 오기 등입니다. 작업에서 키는 연결된 목록의 이름으로 이해됩니다. 목록은 메시지 큐에 사용됩니다.
목록 맨 위에 하나 이상의 값을 삽입하십시오.
목록의 지정된 범위에있는 요소를 가져옵니다.
목록의 마지막 요소를 제거하고 반환 값은 제거 된 요소입니다.
밖으로 이동하여 목록의 첫 번째 요소를 가져옵니다.
예 :
127.0.0.1:6379> LPUSH 목록 1 "aaa" "bbb" "ccc" "ddd"
127.0.0.1:6379> LRANGE list1 0 -1 // ** 모든 요소 나열 **
1) "fff"
2) "eee"
3) "ddd"
4) "ccc"
5) "bbb"
6) "aaa"
127.0.0.1:6379> LRANGE list1 0 2 // ** 처음 세 요소 나열 **
1) "fff"
2) "eee"
3) "ddd"
127.0.0.1:6379> LPOP list1 // ** 위 목록의 첫 번째 요소 제거 **
"fff"
127.0.0.1:6379> RPOP list1 // ** 위 목록의 마지막 요소 제거 **
"aaa"
Redis 세트 (세트)
집합은 문자열 유형의 정렬되지 않은 모음입니다. 집합 구성원은 고유합니다. 수학의 집합 개념과 유사합니다. 집합에 대한 작업에는 요소 추가 및 삭제와 교차 및 차이와 같은 여러 집합에 대한 작업이 포함됩니다. 작업의 키는 컬렉션의 이름으로 이해됩니다.
SADD 키 member1 [member2]
콜렉션에 하나 이상의 구성원 추가
SMEMBERS 키
는 집합의 모든 구성원을 반환합니다.
SREM 키 member1 [member2]
집합에서 하나 이상의 구성원을 제거합니다.
SINTER key1 [key2]
는 주어진 모든 세트의 교차점을 반환합니다.
SUNION key1 [key2]
는 주어진 모든 집합의 합집합을 반환합니다.
SDIFF key1 [key2]
는 첫 번째 세트와 다른 세트 간의 차이를 반환합니다.
예 :
SADD set1 abc
127.0.0.1:6379> sadd set1 abc
(정수) 3
SMEMBERS set1 // 모든 요소 읽기
127.0.0.1:6379> SMEMBERS set1
1) "c"
2) "b"
3) "a"
SREM set1 c // 요소 제거
127.0.0.1:6379> SREM 세트 1 c
(정수) 1
SADD set2 1 ab // set2 요소 추가
127.0.0.1:6379> SADD 세트 2 1 ab
(정수) 3
127.0.0.1:6379> SMEMBERS set2
1) "b"
2) "a"
3) "1"
SINTER set1 set2 // 교차, 중복 요소
127.0.0.1:6379> SINTER set1 set2
1) "b"
2) "a"
SUNION set1 set2 // Union set, 두 요소의 모든 요소
127.0.0.1:6379> SUNION set1 set2
1) "c"
2) "1"
3) "a"
4) "b"
SDIFF set1 set2 // 차이 집합, set1에는 set2에 요소가 없습니다.
127.0.0.1:6379> SDIFF 세트 1 세트 2
1) "c"
Redis 정렬 세트
정렬 된 집합은 정렬 된 집합이며 문자열 유형 요소의 집합이기도합니다. set보다 가중치 매개 변수 점수가 하나 더 많으므로 집합의 요소를 점수에 따라 작은 것에서 큰 것으로 정렬 할 수 있습니다.
ZADD key score1 member1 [score2 member2]
주문 된 세트에 하나 이상의 구성원을 추가하거나 기존 구성원의 점수를 업데이트합니다.
ZRANGE 키 시작 중지 [WITHSCORES]
인덱스 범위를 통해 정렬 된 집합의 지정된 범위에있는 멤버를 반환합니다.
ZREVRANGE 키 시작 중지 [WITHSCORES]
는 지정된 간격의 멤버를 정렬 된 집합으로 반환하며 점수는 인덱스별로 높은 것부터 낮은 것까지입니다.
예 :
ZADD SET3 12 ABC // ** 를 설정 ABC 방송 에 요소 점수 ** (12)
127.0.0.1:6379> ZADD set3 12 abc
(정수) 1
ZADD set3 2 "cde 123"// ** 점수를 ** 2 로 설정
127.0.0.1:6379> ZADD set3 2 "cde 123"
(정수) 1
ZADD set3 24 "123-aaa"// ** 점수를 ** 24 로 설정
127.0.0.1:6379> ZADD set3 24 "123-aaa"
(정수) 1
ZADD set3 4 "a123a"// ** 점수를 ** 4 로 설정
127.0.0.1:6379> ZADD set3 4 "a123a"
(정수) 1
ZRANGE set3 0 -1 // ** 점수에 따라 작은 것부터 큰 것까지 정렬 **
127.0.0.1:6379> ZRANGE set3 0 -1
1) "cde 123"
2) "a123a"
3) "abc"
4) "123-aaa"
ZREVRANGE set3 0 -1 // ** 역순, 점수에 따라 가장 큰 것부터 가장 작은 것까지 정렬 **
127.0.0.1:6379> ZREVRANGE set3 0 -1
1) "123-aaa"
2) "abc"
3) "a123a"
4) "cde 123"
Redis 해시 (해시)
Redis 해시는 문자열 유형의 필드와 값 간의 매핑 테이블로, 특히 객체 저장에 적합합니다.
실제로 해시는 다차원 문자열로 간주 될 수 있습니다.
HSET 키 필드 값
은 해시 테이블 키의 필드 필드 값 을 값으로 설정합니다.
HMSET 키 field1 value1 [field2 value2]
여러 필드-값 (도메인-값) 쌍을 동시에 해시 테이블 키에 설정합니다.
HGET 키 필드
는 해시 테이블에 저장된 지정된 필드의 값을 가져옵니다.
HGETALL 키
해시 테이블에서 지정된 키의 모든 필드와 값을 가져옵니다.
예 :
hset hash1 우리 이름
127.0.0.1:6379> HSET hash1 우리 이름
(정수) 1
hget hash1 name // ** hash1 테이블의 이름 필드 값 보기 **
127.0.0.1:6379> HGET 해시 1 이름
"aming"
hset의 hash1 30 세 // ** 스토어의 값 나이 필드 hash1 **
127.0.0.1:6379> HSET hash1 age 30
(정수) 1
hgetall hash1 // ** hash1 ** 테이블의 모든 필드와 값 보기
127.0.0.1:6379> HGETALL 해시 1
1) "이름"
2) "aming"
3) "연령"
4) "30"
HMSET hash2 name "admin"age "30"bb "aa"// ** 여러 도메인 값을 해시 테이블에 한 번에 설정 **
127.0.0.1:6379> HMSET 해시 2 이름 "admin"age "30"bb "aa"
확인
127.0.0.1:6379> HGETALL 해시 2
1) "이름"
2) "관리자"
3) "연령"
4) "30"
5) "bb"
6) "aa"
Redis 일반 작업
키 *
데이터베이스의 모든 키와 일치
키 my *
퍼지 매칭, my로 시작하는 키 매칭
존재하는 열쇠
주어진 키가 있는지 확인하고, 키가 있으면 1을 반환하고, 그렇지 않으면 0을 반환합니다.
델 키 1 키 2
하나 이상의 주어진 키를 삭제합니다. 존재하지 않는 키는 무시되며 반환 값은 삭제 된 키의 수입니다.
EXPIRE key1 100 // key1 100s 설정 후 만료
지정된 키의 수명을 설정합니다. 키가 만료되면 (수명은 0) 자동으로 삭제됩니다.
TTL 키
지정된 키의 남은 수명 (TTL, TTL)을 초 단위로 반환합니다.
반환 값 :
키가 없으면 -2가 반환됩니다.
키가 있지만 남은 수명이 설정되지 않은 경우 -1이 반환됩니다.
그렇지 않으면 키의 남은 생존 시간을 초 단위로 반환합니다.
색인 선택
지정된 데이터베이스로 전환하면 데이터베이스 인덱스 번호 인덱스가 숫자 값으로 지정되며 시작 인덱스 값은 0입니다.
기본적으로 데이터베이스 0이 사용됩니다.
127.0.0.1:6379> 0을 선택하면 현재 데이터베이스가 사용됩니다.
확인
127.0.0.1:6379> select 1 데이터베이스 No. 1로 전환합니다. 아래에 명령 프롬프트가 하나 더 있습니다. [1]
확인
127.0.0.1:6379 [1]> 3 번 데이터베이스로 전환합니다. 3 번 데이터베이스로 전환하면 명령 프롬프트에 하나가 더 있습니다. [3]
확인
127.0.0.1:6379 [3]>
MOVE 키 db
현재 데이터베이스의 키를 주어진 데이터베이스 db로 이동합니다.
반환 값 :
이동이 성공하면 1을, 실패하면 0을 반환합니다.
PERSIST 키
주어진 키의 수명을 제거하고이 키를 "휘발성"(수명 키 포함)에서 "영구"(수명없이 만료되지 않는 키)로 변환합니다.
반환 값 :
생존 시간이 성공적으로 제거되면 1이 반환됩니다.
키가 존재하지 않거나 키에 대해 TTL이 설정되지 않은 경우 0이 리턴됩니다.
랜덤 키
현재 데이터베이스에서 키가 임의로 반환됩니다 (삭제되지 않음).
반환 값 :
데이터베이스가 비어 있지 않으면 키가 반환됩니다.
데이터베이스가 비어 있으면 nil이 반환됩니다.
RENAME 키 newkey
키 이름을 newkey로 바꿉니다.
키와 newkey가 같거나 키가 없으면 오류가 반환됩니다.
newkey가 이미있는 경우 RENAME 명령은 이전 값을 덮어 씁니다.
반환 값 :
이름이 성공적으로 변경되면 확인 메시지를 표시하고 실패하면 오류를 반환합니다.
TYPE 키
키에 저장된 값의 유형을 반환합니다.
반환 값 :
없음 (키가 존재하지 않음)
끈
목록 (목록)
세트
zset (정렬 된 세트)
해시 (해시 테이블)
DBSIZE
현재 데이터베이스의 키 수를 반환합니다.
정보 [섹션]
선택적 매개 변수 섹션을 제공하면 명령이 정보의 특정 부분 만 리턴하고 매개 변수를 추가하지 않고 모든 정보를 표시하도록 할 수 있습니다.
FLUSHDB
현재 데이터베이스의 모든 키를 지 웁니다.
FLUSHALL
전체 Redis 서버의 데이터를 삭제합니다 (모든 데이터베이스의 모든 키 삭제).
저장
save 명령은 동기 저장 작업을 실행하고 현재 Redis 인스턴스의 모든 데이터 스냅 샷을 RDB 파일 형식으로 하드 디스크에 저장합니다.
CONFIG GET 매개 변수
CONFIG GET은 일치하는 모든 구성 매개 변수를 찾기 위해 단일 매개 변수 매개 변수를 검색 키로 허용합니다. 여기서 매개 변수와 값은 "키-값 쌍"으로 정렬됩니다.
데이터 복구 : 먼저 dir 디렉토리와 dbfilename을 정의하거나 확인한 다음 백업 rdb 파일을 dir 디렉토리에 넣고 redis 서비스를 다시 시작하여 데이터를 복원합니다.