Skip to content
- 참조
- 파이썬에서 레디스 사용 : https://soyoung-new-challenge.tistory.com/117
- 레디스 소개 : https://www.joinc.co.kr/w/man/12/REDIS/IntroDataType
- 레디스란 무엇인가 : URL
- 레디스 튜토리얼 : URL
- 라즈베리파이에 Redis 설치
- 설치 : sudo apt-get install redis
- 실행 : sudo systemctl start redis
- sudo systemctl enable redis
- 설치 확인 : redis-cli ping
- PONG 나오면 성공
- 접속 : redis-cli
- Redis 명령 : redis-cli 환경에서
- SET hello world : hello라는 key에 world라는 value 저장
- SET hello : hello라는 key에 저장된 값을 보여달라
- SET counter 100 : counter에 100을 저장
- INCR counter : counter에 1증가
- INCRBY counter 50 : counter에 50증가
- GETSET counter 0 : 기존 counter값을 출력한 후 0으로 초기화
- SET counter 5 NX : counter 키가 있으므로 5로 변경 안됨
- SET counter 5 XX : counter 키가 있어도 5로 변경
- MSET a 2 b 3 : a=2, b=3 저장
- MGET a b : a, b를 출력
- Redis 명령(LIST) : redis-cli 환경에서
- LPUSH mylist a : mylist의 왼쪽에 a추가
- LPUSH mylist b : mylist의 왼쪽에 b추가
- RPUSH mylist c : mylist의 오른쪽에 c추가
- LRANGE mylist 0 -1 : mylist의 왼쪽 첫번째부터 오른쪽 첫번째까지 보여달라(시작, 끝)
- 출력 : b a c
- 파이썬과 같은 인덱스 형식 : 0,1,2,3 -3, -2, -1
- RPUSH mylist d e f “foo bar” : 여러개 동시 입력
- LRANGE mylist 0 -1 : mylist의 왼쪽 첫번째부터 오른쪽 첫번째까지 보여달라(시작, 끝)
- 출력 : b a c d e f “foo bar”
- RPOP mylist : 오른쪽에서 1개 pop
- LPOP mylist : 왼쪽에서 1개 pop
- BRPOP mylist : mylist가 비어있으면 채워질때까지 대기(BLOCKING)
- BLPOP mylist : mylist가 비어있으면 채워질때까지 대기(BLOCKING)
- BRPOP mylist 5 : 5초 안에 리스트에 값이 입력되지 않으면 nil 반환
- Redis 명령(HASH) : redis-cli 환경에서
- hmset no:1 username gildong age 20 gender m
- hget no:1 => (error) ERR wrong number of arguments for ‘hget’ command
- hget no:1 username => “gildong”
- hget no:1 age => “20”
- hmset no:2 username jane age 22 gender f
- hget no:2 username => “jane”
- hget no:2 age => “22”
- hgetall no:1
1) “username”
2) “gildong”
3) “age”
4) “20”
5) “gender”
6) “m”
- Redis 명령(SET) : redis-cli 환경에서
- 127.0.0.1:6379> sadd myset 1 2 3
(integer) 3
- 127.0.0.1:6379> smembers myset
1) “1”
2) “2”
3) “3”
- 127.0.0.1:6379> sismember myset 3
(integer) 1
- 127.0.0.1:6379> sismember myset 30
(integer) 0
- Redis 명령(Sorted SET) : redis-cli 환경에서
- 127.0.0.1:6379> zadd mysortset 20 jeonju
(integer) 1
- 127.0.0.1:6379> zadd mysortset 19 iksan
(integer) 1
- 127.0.0.1:6379> zadd mysortset 22 kunsan
(integer) 1
- 127.0.0.1:6379> zadd mysortset 15 kimje
(integer) 1
- 127.0.0.1:6379> zadd mysortset 20 jeongup
(integer) 1
- 127.0.0.1:6379> zrange mysortset 0 -1
1) “kimje”
2) “iksan”
3) “jeongup”
4) “jeonju”
5) “kunsan”
- 127.0.0.1:6379> zrange mysortset 0 -1 withscores
1) “kimje”
2) “15”
3) “iksan”
4) “19”
5) “jeongup”
6) “20”
7) “jeonju”
8) “20”
9) “kunsan”
10) “22”
- 127.0.0.1:6379> zrevrange mysortset 0 -1
1) “kunsan”
2) “jeonju”
3) “jeongup”
4) “iksan”
5) “kimje”
- 127.0.0.1:6379> zrangebyscore mysortset -inf 20 withscores
1) “kimje”
2) “15”
3) “iksan”
4) “19”
5) “jeongup”
6) “20”
7) “jeonju”
8) “20”
- 127.0.0.1:6379> zrangebyscore mysortset 20 inf withscores
1) “jeongup”
2) “20”
3) “jeonju”
4) “20”
5) “kunsan”
6) “22”
127.0.0.1:6379> zrangebyscore mysortset 19 20 withscores
1) “iksan”
2) “19”
3) “jeongup”
4) “20”
5) “jeonju”
6) “20”
127.0.0.1:6379> zremrangebyscore mysortset 19 20
(integer) 3
127.0.0.1:6379> zrange mysortset 0 -1 withscores
1) “kimje”
2) “15”
3) “kunsan”
4) “22”
- Redis 명령 : 리눅스 쉘 환경에서
- cat a.png | redis-cli -x SET myimage : a.png를 myimage라는 키로 저장
- cat a.png | redis-cli -h 192.168.0.20 -x SET myimage
- redis-cli GET myimage > b.png : myimage라는 키에 저장된 값을 읽어 b.png파일로 저장
- redis-cli -h 192.168.0.20 GET myimage > b.png
- python에서 redis 사용하기
- pip3 install redis : redis 설치
- vi myredis.py
|
import redis try: rd = redis.StrictRedis(host='127.0.0.1', port=6379, db=2) print('Set Record:', rd.set('mykey', 'hello world')) print('Get Record:', rd.get('mykey')) print('Delete Record:', rd.delete('mykey')) print('Get Delete Record:', rd.get('mykey')) except Exception as ex: print('Error:', ex) |
- python3 myredis
|
pi@raspberrypi:~ $ python3 myredis.py Set Record: True Get Record: b'hello world' Delete Record: 1 Get Delete Record: None |
- ubuntu 리눅스와 PHP7.X 환경에서 redis 설치 및 사용
- dpkg -l | grep php : 설치된 php 라이브러리 확인
- apt-get install을 사용하여 해당 버전의 라이브러리 설치
- sudo apt-get install
php7.3-cli
php7.3-common
php7.3-curl
php7.3-dev
php7.3-fpm
php7.3-gd
php7.3-intl
php7.3-mbstring
php7.3-mysql
php7.3-redis
php7.3-sqlite3
php7.3-xml
php7.3-xmlrpc
php7.3-zip
- sudo systemctl restart apache2 : apache2 재실행
- phpinfo를 통하여 설치 확인
- vi public_html/myredis.php
|
<?php $rd = new Redis(); $rd->connect("127.0.0.1", 6379); $rd->set("myphp", "hello php"); echo "GET:".$rd->get("myphp")."<br>"; $rd->delete("myphp"); echo "GET:".$rd->get("myphp")."<br>"; ?> |
- 실행결과
error: Content is protected !!