Redis의 CRUD 작업을 Python에서 수행

15467 단어 파이썬Redis
※자신의 공부 메모용 기사

소개


  • Python에서 Redis CRUD 작업을 수행합니다.
  • Python 클라이언트는 redis-py 사용

  • Document

  • Welcome to redis-py’s documentation!
  • 라이브러리 문서


  • The full list of commands
  • Redis-cli 명령 참조



  • 환경 구축



    Docker 사용


    docker run --name some-redis -d --rm -p 6379:6379 redis:5.0.0
    

    Python 클라이언트 설치


    
    # condaでインストール
    conda install redis
    # pipでインストール
    pip install redis
    

  • redis-py Document
  • 라이브러리 문서


  • The full list of commands
  • redis-cli 명령


  • 기본 개념


  • KeyValue
  • 지속성 가능 (제약 많음)
  • 대표적인 데이터 형식( 상세 )
  • Strings
  • Lists
  • Sets
  • Hashes
  • etc

  • PubSub 가능
  • 매니지드 있음
  • CLOUD MEMORYSTORE
  • Amazon ElastiCache


  • CRUD 조작



    라이브러리 읽기/연결


    
    import redis
    
    # 接続
    r = redis.StrictRedis(host='yourhost', port=6379, db=0)
    

    ※커넥션 풀 사용하면 2배 빠르다

    문자열


  • 간단한 KeyValue



  • Create


    # Keyに対してValueを追加
    r.set('Key01', 'Value01')
    r.set('Key02', 'Value02')
    

    읽기


    # Key01のValueを読み出す
    r.get('Key01')
    

    업데이트


    # Keyを指定してValueを更新
    r.set('Key02', 'Value02_upd')
    

    Delete


    # Keyの削除
    r.delete('Key01','Key02')
    

    Lists


  • 키에 대한 배열을 저장합니다.



    Create


    # KeyList01というKeyに対してリスト作成 > [Value01]
    r.rpush('KeyLists01', 'Value01')
    
    # Key01リスト右側にValueを追加 > [Value01,Value02,Value03]
    r.rpush('KeyLists01', 'Value02')
    r.rpush('KeyLists01', 'Value03')
    
    # Key01リスト左側にValueを追加 > [Value00,Value01,Value02,Value03]
    r.lpush('KeyLists01','Value00')
    
    # ループでValueを追加
    for i in ['A','B','C','D','E']:
        r.rpush('KeyLists01','Value' + i)
    

    읽기


    # 左から範囲指定しValueを表示
    # lrange(Key,Start,End) ※Endは含まれる
    r.lrange('KeyLists01',0,r.llen('Key01')) 
    

    업데이트


    # KeyとindexでValueを更新する
    r.lset('KeyLists01',1,'Value01_upd')
    

    Delete


    # 右から1要素削除し、削除対象のValueを戻り値とする
    pop = r.rpop('KeyLists01')
    print(pop) # > ValueE
    
    # 左から1要素削除
    pop = r.lpop('KeyLists01')
    print(pop) # > Value00
    

    Sets


  • Key에 대한 집합을 저장합니다.



    Create/Update


    # 1番目の引数にKeyを指定し、2番目以降にMemberを指定
    r.sadd('KeySets01', 'A','B','C','D')
    r.sadd('KeySets01', 'D') # 重複なので追加されない(戻り値 0)
    r.sadd('KeySets01', 'E') # 追加される(戻り値 1)
    

    읽기


    # Key内のMemberを確認
    r.smembers('KeySets01')
    

    Delete


    # KeyとMemberで削除
    r.srem('KeySets01','A')
    

    Calculate


    # 計算用データ登録
    r.sadd('KeySets02','C','D','E','F')
    # 和集合
    r.sunion('KeySets01','KeySets02')
    # 積集合
    r.sinter('KeySets01','KeySets02')
    # 差集合
    r.sdiff('KeySets01','KeySets02')
    

    Hashes


  • Key에 Field와 Value를 저장합니다.



    Create


    # Key,Field,Valueの3構造のデータ
    r.hset("lv0", "lv1_1", "lv2_1")
    r.hset("lv0", "lv1_2", "lv2_2")
    r.hset("lv0", "lv1_3", "lv2_3")
    r.hset("lv0", "lv1_4", "lv2_4")
    

    읽기


    # Key,Fieldを指定してValueを取得する
    r.hget('lv0', 'lv1_3')
    
    # Keyでデータを取得する
    r.hgetall("lv0")
    

    업데이트


    # Key,Fieldを指定してValueを更新
    r.hset("lv0", "lv1_3", "update_lv2_3")
    # r.hget('lv0', 'lv1_3') > b'update_lv2_3'
    

    Delete


    # Key,Fieldで削除
    r.hdel('lv0','lv1_3')
    

    OTHER



    DROP


    # CurrentDBの全てのキーを削除
    r.flushdb()
    # 全てのDBの全てのキーを削除
    r.flushall()
    

    키스


    # どのデータ型でもKeyで削除できる
    r.delete(Key)
    
    # Key一覧
    r.keys()
    
    # Keyに格納されたデータ型表示
    r.type(Key)
    
    # Keyに格納されたデータ型表示全量
    for i in r.keys():
        print(i,r.type(i))
    
  • 좋은 웹페이지 즐겨찾기