Example


# Hash 추가
HSET cars#a1 name 'fast car' color red year 1950
HSET cars#b1 name 'car' color red year 1960
HSET cars#c1 name 'old car' color blue year 1970
HSET cars#d1 name 'new car' color blue year 1990

FT.CREATE - 인덱스 생성


# 인덱스 생성
FT.CREATE idx:{인덱스명} ON {HASH or JSON} PREFIX {키접두어수} {...키접두어} SCHEMA {...name type}

FT.CREATE idx:cars ON HASH PREFIX 1 cars# SCHEMA name TEXT year NUMERIC color TAG


FT.SEARCH - 조회

# 조회

- 문자열 검색
FT.SEARCH idx:cars '@name:(fast car)'

- 태그 검색
FT.SEARCH idx:cars '@color:{blue}'

- 숫자 검색
FT.SEARCH idx:cars '@year:[1955 1980]'

- 다중조건
FT.SEARCH idx:cars '@name:(fast car) @color:{blue}'

FT.SEARCH - 숫자 쿼리

# 경계값 포함 
@year:[1955 1980]

# 경계값 미포함 
@year:[(1955 (1980]

# Infinite
@year:[1955 +inf]
@year:[-inf 1955]

# 범위제외
-@year:[1955 1980]

FT.SEARCH - 태그 쿼리

# 동일값
@year:{blue}

# 제외
-@year:{blue}

# 또는(or)
@year:{red|blue}

# 공백처리
@year:{light\blue}

FT.SEARCH - 텍스트 검색

* 텍스트의 경우 스테밍(어간추출)으로 정확한 값이 아니라 알고리즘을 통하여 관련 단어로 "검색"

# 전체검색
fast

#'fast' and 'car' 검색
@name:(fast car)

#'fast' or 'car' 검색
@name:(fast|car)

#'fast' not 검색
-@name:(fast)

# 오탈자 검색
@name:(%dar%) // car <- 문자 하나의 불일치 허용
@name:(%%daar%%) // car <- 두 문자의 불일치 허용
@name:(%%%daarr%%%) // car <- 세 문자의 불일치 허용

# 접두어 검색(2글자 이상)
@name:(ca*) // car

'Notes > Redis' 카테고리의 다른 글

LUA 스크립트  (0) 2025.07.24

기본

-- 출력
print(123)
print('Hello World')
print("Hello World")

-- 변수 local 선언
local sumLocal = 1 + 1
print(sumLocal)

-- 변수 global 선언
sumGlobal = 2 + 2
print(sumGlobal)

-- if-then-end 
local a = 1

if a > 0 then 
    print("a 는 0보다 크다")
end

if a ~= 0 then  -- not 비교
    print("a는 0이 아니다")
end

if a == 1 then  -- 동일 비교
    print("a는 1이다")
end

if 0 and '' then 
    print("0과 빈문자열은 참이다")
end

if false or not true then
    print("이 출력문은 표시되지 않는다")
end

 

배열

-- 배열
local colors = {'red','green','blue'}

-- lua의 배열 인덱스는 "1"부터 시작
print(colors[1]) 

-- 요소의 수
print(#colors)

-- 추가
table.insert(colors, 'orange')
print(colors[4]) 
print(#colors)

-- 배열 순회
for i, v in ipairs(colors) do
    print(i, v)
end

-- 범위 순회
for i=5, 10 do 
    print(i)
end

 

테이블

-- lua table은 javascript 의 object 와 유사하다
local user = {id = 'a1', name = 'samantha'}
print(user['id'])
print(user['name'])

for k, v in pairs(user) do
    print(k, v)
end

'Notes > Redis' 카테고리의 다른 글

RedisSearch Commands  (2) 2025.08.14

토픽 생성 / 제거 / 조회


# topic 생성
kafka-topics.sh --bootstrap-server localhost:9092 --create -topic #{topic_name}
# 파티션지정 생성
kafka-topics.sh --bootstrap-server localhost:9092 --create -topic #{topic_name} 
--partitions ${partition_number}
# replication-factor 지정
kafka-topics.sh --bootstrap-server localhost:9092 --create -topic #{topic_name} 
--partitions ${partition_number} --replication-factor #{replication_number}


# topic 제거
kafka-topics.sh --bootstrap-server localhost:9092 --topic #{topic_name} --delete


# topic list 체크
kafka-topics.sh --bootstrap-server localhost:9092 --list
# topic 정보
kafka-topics.sh --bootstrap-server localhost:9092 #{topic_name} --describe

'Notes > Kafka' 카테고리의 다른 글

Kafka - WSL2 설치 및 실행  (1) 2025.06.10

3.1.0 version 기준 설치 example

# jdk 설치
sudo apt install openjdk-11jdk
java -version
javac -version

#kafka 링크 이용하여 다운로드
wget https://archive.apache.org/dist/kafka/3.1.0/kafka_2.13-3.1.0.tgz

# kafka bin 경로 체크
cd kafka_2.13-3.1.0/bin
pwd

# PATH 등록
nano .bashrc

# .bashrc 최하단 환경변수 추가
PATH="$PATH:/home/ygs/kafka_2.13-3.1.0/bin"
# 환경변수 추가 후 linux 재로그인, PATH 체크
echo $PATH 


 

Zookeeper 이용하여 실행


# 주키퍼 실행
zookeeper-server-start.sh ~/kafka_2.13-3.1.0/config/zookeeper.properties

# kafka 실행[]()
kafka-server-start.sh ~/kafka_2.13-3.1.0/config/server.properties

# kafka, zookeper 설정, kafka 로그 및 zookeper 데이터 디렉토리 설정 가능
nano kafka_2.13-3.1.0/config/zookeeper.properties
nano kafka_2.13-3.1.0/config/server.properties

 

KRaft 모드


#PATH 등록 상태에서

# 클러스터 uuid 생성
kafka-storage.sh random-uuid
# EQhLcEdZTku0cEYDOdBqxg

# storage format, 초기화
kafka-storage.sh format -t ${uuid} -c ~/kafka_2.13.3.1.0/config/kraft/server.properties

# 실행
kafka-server-start.sh ~/kafka_2.13.-3.1.0/config/kraft/server.properties

 

WSL2 네트워킹 버그 해결


# 아래 오류메시지, ipv6 문제
# Connection to node -1
# could not be stablished

# 브로커 정지후 ipv6 비활성화 필요
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1

vi config/server.properties # or nano
# 리스너 수정 localhost:9092 example
listners=PLAINTEXT://localhost:9092



# ------------------------- 또는 아래와 같이 처리하여 ipv6 유지

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0
listners=PLAINTEXT://[::1]:9092 

'Notes > Kafka' 카테고리의 다른 글

Kafka - CLI  (0) 2025.06.20
# 스프링 로그파일 시간기준 검색
awk '$0 >= "2025-01-06 14:00:00" && $0 <= "2025-01-06 15:00:00"' /path/to/logfile.log

'Notes > Linux' 카테고리의 다른 글

터미널 텍스트 이동, 편집 관련 단축키  (0) 2024.07.03

Minikube

# minikube 상태확인  
minikube status  

# minikube 클러스터 삭제
minikube delete

# minikube 클러스터 생성
minikube start --driver=${가상머신}  

# minikube 서비스 접근
minikube service ${deployment-name}

Kubectl

# deployment 생성, 가상머신이므로 로컬 image가 아닌 hub repository 이용
kubectl create deployment ${deployment-name} --image=${remote-image} 

# deployment 제거
kubectl delete deployment ${deployment-name}

# deployment check
kubectl get deployments

# pod check
kubectl get pods

# LoadBalancer 이용하여 port 노출 및 service 생성  
kubectl expose deployment ${deployment-name} --type=LoadBalancer  --port=8080

# service check
kubectl get services

# service 접근  
minikube service ${deployment-name}  

# 다중 컨테이너 pods 실행  
kubectl scale deployment/${deplyment-name} --replicas=3

# 기존 deployment 컨테이너 새로운 이미지 설정  
kubectl set images deployment/${deployment-name} ${before-image-name}=${new-image-docker-hub-repository}

# deployment update 확인  
kubectl rollout status deployment/${deployment-name}  

# deployment history  
kubectl rollout history deployment/${deployment-name}  
kubectl rollout history deployment/${deployment-name} --revision=${revision}  

# deployment rollback  
# 이전  
kubectl rollout undo deployment/${deployment-name}  
# 특정 revision
kubectl rollout undo deployment/${deployment-name} --to-revision=${revision}  

# service 제거  
# kubectl delete service ${deployment-name}

# deployment 제거  
kubectl delete deployment ${deployment-name}

 

선언형 파일 이용
```shell
kubectl apply -f ${file-name}.yaml
```

# 선언형 파일 적용
kubectl apply -f ${file-name}.yaml

 

'Notes > Kubernetes' 카테고리의 다른 글

Window, WSL kubectl config 공유하기  (0) 2024.07.27

Window 에서 kubectl 을 설치 후 WSL 에서 클러스터 사용을 공유하기 위해 config 파일을 공유하는 방법


# wsl Linux 에 kubectl 설치
# https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

# kubectl 실행 권한 설정
chmod +x /kubectl

# 설정파일 저장 디렉토리 생성
mkdir -p ~/.kube

# 윈도우 설정파일 링크
ln -sf "/mnt/c/users/$windowsUser/.kube/config" ~/.kube/config

'Notes > Kubernetes' 카테고리의 다른 글

쿠버네티스 명령어(kubernetes command)  (0) 2024.07.27

https://docs.aws.amazon.com/ko_kr/serverless-application-model/latest/developerguide/install-docker.html


# 패키지 ㅈ최신화
sudo yum update -y

# 도커 설치 시작
sudo yum install -y docker

# Docker 서비스 시작
sudo service docker start

# ec2-user가 docker 명령어 실행할 수 있도록 그룹에 추가
# 추가 이후 로그아웃 이후 로그인 해야 docker 명령어 사용가능
sudo usermod -a -G docker ec2-user

# 확인
docker ps 

+ Recent posts