도커 용기 레디 스를 사용

이미지를로드

질의 이미지와 정보의 공식 버전

$ docker search redis

최근 이미지로드

$ docker pull redis:lastest

로컬 미러를 확인

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/redis     latest              f0453552d7f2        7 days ago          98.2 MB
docker.io/mysql     latest              9b51d9275906        2 weeks ago         547 MB
docker.io/tomcat    latest              4e7840b49fad        3 weeks ago         529 MB

실행 컨테이너

데몬 사용

$ docker run --name kris-redis -p 6380:6379 -d redis --requirepass "123456"

사용자 정의 redis.conf 시작

docker run -p 6379:6379 --name kris-redis -v /root/docker/redis/redis.conf:/etc/redis/redis.conf  -v /root/docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
# -p 6379:6379:把容器内的6379端口映射到宿主机6379端口
# -v /root/redis/redis.conf:/etc/redis/redis.conf:把宿主机配置好的redis.conf放到容器内的这个位置中
# -v /root/redis/data:/data:把redis持久化的数据在宿主机内显示,做数据备份
# redis-server /etc/redis/redis.conf:这个是关键配置,让redis不是无配置启动,而是按照这个redis.conf的配置启动
# -appendonly yes:redis启动后数据持久化

운전 상태를보기

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
3c90175b38e6        redis               "docker-entrypoint..."   13 minutes ago      Up 13 minutes       0.0.0.0:6380->6379/tcp              kris-redis
2bbd52391bab        mysql               "docker-entrypoint..."   7 days ago          Up 7 days           0.0.0.0:3306->3306/tcp, 33060/tcp   kris-mysql

즉 클라이언트 레디 스, 레디 스 - CLI 사용

$ docker exec -it kris-redis redis-cli

다섯 레디 스 데이터 유형

머리말

레디 스 키워드는 대소 문자를 구분 아니라 혼합 된 경우가 있습니다.

레디 스 키 - 값 쌍의 형태로 저장된다.

다섯 레디 스 데이터 형식 : 문자열,리스트, 세트, ​​해시, 주문 수집

레디 스 키

공통 :

케이스 :

keys * : 리턴 전체 '최상위 키 ", 즉, (참고 : 해시 키 - 값 쌍뿐만 아니라, 키 - 값 쌍의 값 <KEY, <K, V >>)에 저장된 데이터의 주요 데이터 유형의 이름, 밤나무주고 :

127.0.0.1:6379>$ keys *
1) "customer"  # 定义的Hash
2) "set01"  # 定义的Set
3) "list01"  # 定义的List
4) "username"  # 定义的String

exists : 열쇠가 있는지 여부를 확인하려면

127.0.0.1:6379>$ exists username
(integer) 1  # 存在返回1
127.0.0.1:6379>$ exists username00
(integer) 0  # 不存在返回0

move key dbindex : 현재 라이브러리 (인덱스 : 1) 아니요가 제거되고, 데이터는 다른 데이터베이스로 마이그레이션

참고 : redis.conf 기본 데이터베이스 (16)는, 기본값은 0 초기 라이브러리, 0 127.0.0.1:6379>, 다른 라이브러리를 선택할 때, 라이브러리가 그런 것입니다 127.0.0.1:6379[dbindex]>인덱스가 dbindex 라이브러리를 표현.

127.0.0.1:6379>$ move username 2  # 数据迁移至其他库
(integer) 1  # 迁移成功
127.0.0.1:6379>$ select 2  # 选择当前操作的数据库
OK
127.0.0.1:6379[2]>$ get username  # 查询迁移后的数据,若查询1库中数据,需要重新选择库
"kris"

expire key 秒钟 : 주어진 키에 대한 만료 시간을 설정

ttl key : 만료 (초)을 확인 -1 수단이 만료되지 않습니다, -2 만료

127.0.0.1:6379[2]>$ expire username 10  # 存活10秒
127.0.0.1:6379[2]>$ ttl username
(integer) 7
127.0.0.1:6379[2]>$ ttl username
(integer) 2
127.0.0.1:6379[2]>$ ttl username
(integer) -2 # 已过期
127.0.0.1:6379[2]>$ get username
(nil)  # 已经不存在了

type key : 확인 키는 유형입니다

127.0.0.1:6379>$ type list01
list

개요 :

  • 레디 스 문자열 유형이 가장 기본적인 데이터 구조, 최초의 키는 문자열 타입 , 그리고 여러 가지 다른 구조가 문자열 형식에 근거하여 구축, 문자열 형식은 다른 네 가지의 데이터 구조의 기본 유형입니다 .
  • 문자열 유형은 실제로 수있는 문자열 (간단한 문자열, 복잡한 문자열 (XML, JSON), 숫자 (정수, 부동 소수점), 이진 (이미지, 오디오, 비디오))하지만, 최대 512M를 초과 할 수 없습니다 .

사용 시나리오 :

  • 캐시 기능 : 가장 고전적인 문자열 사용 시나리오는, 캐시로 레이어를 레디 스 , MySQL은 스토리지 계층으로 지원 레디 스 이후, 요청 데이터의 대부분은 레디 스를 획득, 높은 동시성 특성을 캐시는 일반적으로 재생할 수 있습니다 가속 및 읽기 압력 백엔드 줄이는 역할을. 왜 특성이 높은 동시성을 지원해야 레디 스? .
  • 카운터 : 데이터를 다른 데이터 소스에 더 땅이 될 수 있지만 기본적인 도구로 간주 레디 스를 사용하는 대부분의 응용 프로그램, 그는 빠른 수, 쿼리 캐시 기능을 달성 할 수있다. 그러한 : 영상 재생 시스템의 개수는베이스 성분 레디 스로서 사용되는 동영상 플레이어의 개수를 카운트.
  • 세션을 공유 : 고려로드 밸런싱, 분산 서비스 액세스 사용자 정보가 다른 서버로 균형되며, 사용자는, 레디 스 사용자 세션 중앙 집중식 관리로이 문제를 방지 할 수있는 액세스 로그 등을 새로 고쳐야 할 수있는 긴 고 가용성 및 확장 성 보장의 중앙 레디 스에서 직접 취득 갱신 또는 조회 로그인 정보를 때마다 get 및 사용자 레디 스뿐만 모드에서.
  • 속도 : 안전을 위해, 당신이 로그인 할 때마다이 SMS 인터페이스가 자주 액세스되지를 들어, 사용자는 분당 검증 코드의 주파수를 제한 할 수 있습니다, 사용자가 전화 번호를 입력 할 수 있습니다.

일반적으로 사용되는 명령 :

케이스 :

set/get/del/append/strlen 당신이 정의 할 때 이미 존재하는 경우, 그것은 범위를 저장합니다

127.0.0.1:6379>$ set username kris
OK
127.0.0.1:6379>$ get username
"kris"
127.0.0.1:6379>$ append username louis
(integer) 9
127.0.0.1:6379>$ get username
"krislouis"
127.0.0.1:6379>$ strlen username
(integer) 9

명부

개요 :

  • 리스트 타입이 문자열 스토어 명령에 사용되는 복수의리스트에서 각각의 문자열 요소 (요소)이되고,리스트 테이블을 대기 할 수 레디 스에서, $ 2 ^ {32} $ -1 요소를 저장할 수 말단 삽입 (pubsh) 및 소자 지정된 인덱스 테이블을 획득 또한리스트의 요소의 지정 범위를 얻을 수있다 (POP) 팝업 된 목록은 스택과 큐의 역할로서 작용할 수있는 더 유연한 데이터 구조에서, 마찬가지로 실제 개발 시나리오 많이 있습니다.
  • 장점 :
    리스트의 1 요소는 요소 또는 인덱스 지수에 의해 일정 범위 내에서 목록을 얻을 수있는 수단, 주문한다.
    (2) 내의 구성 요소의 목록은 반복 될 수있다.

사용 시나리오 :

  • 메시지 큐는 : 레디 스 lpush + brpop 조성물 차단 명령 큐가 실현 될 수 있으며, 제조자 클라이언트 lupsh으로 왼쪽에서 소자로부터 삽입된다 brpop 명령을 사용하여 사용자 클라이언트의 복수의 요소들의리스트의 말단이 차단 된 "복" 여러 클라이언트는 소비자의로드 밸런싱 및 고 가용성을 보장합니다.

  • 팁의 목록을 사용하여 :
lpush+lpop=Stack(栈)
lpush+rpop=Queue(队列)
lpush+ltrim=Capped Collection(有限集合)
lpush+brpop=Message Queue(消息队列)

공통 : 업데이트 할

케이스 : 업데이트 할

해시

개요 :

  • 레디 스 해쉬 종류의 키 자체는이다 건반 구조체 등 :

    value={{field1,value1},......{fieldN,valueN}}

사용 시나리오 :

  • 특징 : 상대 해시 문자열 구조 보다 직관적 인 캐시 정보의 순서업데이트 작업 에 더 편리합니다.
  • 일반적으로 사용되는 사용자 정보 등의 관리로.
  • 부적절한 : 해시 유형과 다른 관계형 데이터베이스, 해시 유형이 스파 스 , 그리고 관계형 데이터베이스가 완전히 쉽게 복잡한 관계형 쿼리를 구현하기 위해, 구조화, 비 관계형 데이터베이스 레디 스, 관계형 데이터베이스는 복잡한 시뮬레이션 할 필요 문의, 개발의 어려움, 높은 유지 보수 비용.

공통 : 업데이트 할

케이스 : 업데이트 할

세트

개요 :

  • 수집 형 요소는 문자열과리스트를 복수 저장하는 데 사용되지만, 그 차이는 요소의 중복되는 세트를 허용하지 않고, 집합의 원소가 순서화되어, 첨자 인덱스 컬렉션 레디 스지지 이외에 요소를 얻을 수 없다 추가 및 삭제는 내 검색을 변경하고 또한 교차로, 노동 조합, 차이의 여러 컬렉션, 좋은 컬렉션 타입의 합리적인 사용을 지원, 실제 개발에 많은 실제 문제를 해결할 수 있습니다.

사용 시나리오 :

  • 라벨 (태그) 예 : 더 엔터테인먼트, 스포츠에 관심이있는 사용자로 유형 일반적인 사용 시나리오의 수집 및 다른이 뉴스에 관심이있을 수 있습니다, 이러한 관심은 우리가 사람들에게 동일한 레이블을 얻을 수 있습니다 이러한 데이터 레이블,이며, 공통의 관심사 사용자 레이블, 이러한 데이터는 사용자 경험에 대한 중요하고 강력한 사용자 점도있다. (사용자와 라벨 사이의 관계가 일치하지 않는 데이터에 의한 명령의 실패 부분을 방지하기 위해 수행하는 유지 보수 일에 배치한다)

    사드 = 태그 (태그)
    SPOP / srandmember = 임의의 항목 (예 : 복권과 같은 임의의 숫자를 생성)
    사드 = + 소결 소셜 그래프 (사회적 필요)

공통 : 업데이트 할

케이스 : 업데이트 할

정렬 된 세트

개요 :

  • 수집 및 컬렉션은 본질적으로 연결 주문, 그는 회원의 모음 중복 기능을 가질 수 없습니다 유지하지만, 차이점은이 주문할 수 있습니다 요소의 집합 정렬 된 것이었지만, 및 목록 인덱스 첨자 다른 종류를 사용하여 그것은 일종의 기초의, 세트 점수의 각 요소를 제공한다는 것입니다. (요소의 정렬 된 세트는 반복 될 수는 없지만, csore 그것을 반복 할 수 있습니다와 그의 친구들이 숫자가 반복 될 수없는 배웠지 만 시험 점수가 동일 할 수 있습니다.)

리스트는, 세트, ​​세 가지 유사점과 차이점의 순서화 된 집합

사용 시나리오 :

목록 : 고전 사용 시나리오의 명령 모음.

비디오 사이트를 사용자가 올린 동영상에 대한 순위를 수행하는 등, 목록 정비는 여러 가지 방법이 될 수 있습니다 시간에 의해, 플레이어의 양에 따라 숫자를 얻을 칭찬 등등에 따라.

공통 : 업데이트 할

케이스 : 업데이트 할

추천

출처www.cnblogs.com/louis6575/p/12543517.html