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