티스토리 뷰
redis는 기본적으로 Linux에 설치하지만, Microsoft에서 제공하는 설치 파일을 통해서도 설치 가능하다.
하지만 버전은 16년 버전...(redis 3.0버전..)
나는 python에서 reids를 쓰고 싶었다.pip install redis를 하면 최신 버전인 5.2.1의 redis-py가 설치된다. 지원하는 redis 버전은 5.0이상. https://pypi.org/project/redis/
어차피 배포할때는 ubuntu환경에서 하기도 하고, docker-desktop을 설치할때 WSL도 설치했어서 Microsoft배포용 윈도우 reids버전(3.0)대신 윈도우 내에서 wsl을 사용해 Linux 환경에서 Redis를 설치했다.
1.WSL 활성화 및 ubuntu 실행
- PowerShell을 관리자 권한으로 실행하고 다음 명령어 실행
- 설치된 wsl 확인
wsl --list --verbose
- 설치 안되어있다면
wsl --install
wsl --set-default-version 2 # WSL 2는 성능이 더 좋아서 최신 버전으로 설정
- Ubuntu 실행
wsl -d Ubuntu
2. Ubuntu에서 Redis 설치
sudo apt update
sudo apt install redis-server
# 버전확인
redis-server --version # Redis server v=7.0.15
3. Redis 서버 실행 및 확인
sudo service redis-server start
redis-cli ping # pong이 오면 잘 실행된것
4. 작업하던 가상환경에서 redis-py 라이브러리 설치
pip install redis
# 버전 확인
pip show redis # 5.2.1
5. 연결 테스트
import redis
# Redis 클라이언트 생성
r = redis.Redis(host='localhost', port=6379, db=0)
# Ping으로 연결 확인
try:
if r.ping():
print("Redis 연결 성공!")
except redis.ConnectionError:
print("Redis 연결 실패!")
# 값 저장 및 가져오기 테스트
r.set("test_key", "Hello, Redis!")
print("test_key:", r.get("test_key").decode('utf-8'))
# Redis 연결 성공!
# test_key: Hello, Redis!
---------------------------------------------------------------------
* WSL 설치 없이 16년도 버전 설치만 해도 괜찮다면
- https://github.com/microsoftarchive/redis/releases
Releases · microsoftarchive/redis
Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes - microsoftarchive/redis
github.com
1) .msi 파일을 실행하고 설치를 완료한다.
2) 환경변수 path에 redis경로 추가(C:\Program Files\Redis)
* 해당 과정을 생략하면, 매번 cmd에서 redis가 있는 위치로 가서 redis명령어를 실행해야 해서 귀찮다
3) cmd로 Redis 서버를 실행
redis-server
* 오류 발생 시, 해당 포트가 이미 사용 중일 수 있다.
- 6379 포트를 사용하는 프로세스 확인
netstat -ano | findstr :6379
- 해당 프로세스 종료(cmd를 관리자 권한으로 실행 후 입력)
taskkill /PID <PID번호> /F
- 다시 redis실행
redis-server
- 다른 포트에서 redis를 실행시키고 싶다면
redis-server --port 6380
4) cmd에서 Redis 서버에서 접속(연결)
- Redis 서버를 실행하면 이 터미널은 점유된 상태가 된다. Redis 클라이언트를 실행하려면 새로운 CMD 창을 열어야 한다.
redis-cli
- Redis 서버에 제대로 연결되었는지 확인:
ping
- pong이 응답됨
* 컴퓨터 부팅시 자동으로 Redis를 실행시키고 싶다면?
- Redis를 windows 서비스로 등록
# Redis를 Windows 서비스로 등록
sc create RedisServer binPath= "C:\Program Files\Redis\redis-server.exe --service-start" start= auto
# 서비스 시작
net start RedisServer
# 서비스 중지
net stop RedisServer
# Windows 서비스에서 제거
sc delete RedisServer
2. 기본적인 Redis 명령어 연습
1) SET & GET : 데이터 저장 및 조회
# 데이터 저장
set mykey "Hello, Redis!"
# 데이터 조회
get mykey # "Hello, Redis!" 출력됨
2) EXISTS: 키가 존재하는지 확인
exists mykey
# 1 : 존재함(0: 존재하지 않음)
3) DEL : 키 삭제
del mykey
# 삭제 후 다시 조회
get mykey # nil이 출력됨
4) EXPIRE : 특정 키에 유효 기간 설정
# 10초 동안만 유지하는 키 저장
set tempkey "This will expire"
expire tempkey 10
# 바로 조회
get tempkey # "This will expire" 출력됨
# 10초 후 다시 조회
get tempkey # nil 출력
5) 리스트, 해시, 셋 같은 고급 자료구조 사용
# 리스트 사용
rpush mylist "apple"
rpush mylist "banana"
rpush mylist "cherry"
# 리스트 조회
lrange mylist 0 -1
# 출력값
# 1) "apple"
# 2) "banana"
# 3) "cherry"
# 해시 저장
hset user:1000 name "Alice"
hset user:1000 age 25
# 해시 데이터 조회
hgetall user:1000
# 출력
# 1) "name"
# 2) "Alice"
# 3) "age"
# 4) "25"
6) 현재 저장된 모든 키 확인
keys *
# 출력
# 1) "user:1000"
# 2) "mylist"
7) 모든 데이터 삭제
flushall
3. python에서 사용하기
import redis
# Redis 연결
r = redis.Redis(host='localhost', port=6379, decode_responses=True)
# 데이터 저장
r.set('mykey', 'Hello, Redis!')
# 데이터 조회
print(r.get('mykey')) # 출력: Hello, Redis!
'AI > AI 서비스 개발' 카테고리의 다른 글
[AI 서비스 개발] Redis 기초 문법(with python) (0) | 2025.02.18 |
---|---|
[AI 서비스 개발] Redis 다중 키워드 검색(Set & Tag) (1) | 2025.02.17 |
[AI 서비스 개발] Redis key-value (0) | 2025.02.15 |
[AI 서비스 개발] Redis, 디스크, 메모리, I/O 비용 (0) | 2025.02.14 |
[AI 서비스 개발] Crewai input type 에러 (0) | 2025.02.13 |
- Total
- Today
- Yesterday
- 고득점 Kit
- 루틴
- C언어
- Ai
- 줄넘기
- 아침운동
- 경제
- IH
- 티스토리챌린지
- 실기
- SQL
- 미라클모닝
- 빅데이터 분석기사
- 다이어트
- 오픽
- Python
- llm
- 기초
- 운동
- opic
- 뉴스
- ChatGPT
- 30분
- 습관
- 영어회화
- 프로그래머스
- 갓생
- 스크랩
- 오블완
- 아침
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |