220302 34일차 Redis / Search Process

25tutmmu·2022년 3월 2일
0

트리거 로그기록하기
프로시저 더미데이터만들기
트리거의 로그데이터를 mysql같은 DB에 저장시 다른 데이터에 문제가 생길 수 있음

ansi-sqld을 ㄹ BigQuery

implements

더미데이터

Procedure

더미데이터 생성 mysql query문

create procedure mydummydata()
begin
	declare i int default 1;
	while i <= 5000000 do
		insert into board(writer, title, contents) values('철수', rand(),'내용'); // rand() 랜덤한 값 
		set i = i+1;
	end while;
end;

call mydummydata ();

역인덱스 검색 인덱스

옵티마이저 :검색을 효율적으로 해주는 DB내장기능
실행계획: 효율적인 검색계획
explain : 옵티마이저가 결정한 실행계획 보여줘

  • 테이블 풀스캔 (모두 다 찾아볼 예정)
explain
	select *
    from board
    where title = '0.01111727371737274"
  • 인덱스로 찾기
explain
	select *
    from board
    where number = 24

PK,FK,UNIQUE는 자동으로 인덱스 생성됨 그래서 따로 인덱스를 만들지 않아도 인덱스로 찾을 수 있음

create index idx_title on board(title);

모든 컬럼엔 인덱스를 걸지 않는다.
const: PK,FK
ref: 직접 내가 만든 인덱스
range: 인데긋를 찾아볼예정 (크고작은범위)

Redis

docker exec -it <rediscontainer id> redis-cli1 : 레디스 컨테이너 안으로 들어가기
memcached => redis 메모리 기반의 데이터저장소
Redis를 효율적으로 사용하는 2가지 방법

  • 빠른 검색용(Cache -Aside 패턴): MySQL보다 빠른 Redis에서 가져오기 검색
    Redis에 있을떄 Redis 에서 Cache - Hit
    Redis에 있을 때 Redis 에서 cache miss 후 mysql 조회 그 후 redis 저장

ttl : time to leave 어느 정도 저장 할 것 인지 {ttl:0}<= 영구적 저장
expire 만료시간 지정하기

  • 임시 저장용(Write -Back 패턴)

인가 받은 토큰이 로그아웃 했을 경우 validate부분에서 redis

logoutapi 만들기
redis의 블랙리스트에 저장
validate 에서 블랙리스트에 있는지 확인하고 블랙리스트에 있으면 throw로 던짐
특정 시간동안 블랙리스트에 저장

0개의 댓글