python 3 는 json 대상 을 Redis 에 저장 하고 데이터 가 져 오기 내 보 내기
String:바 이 너 리 보안,모든 데 이 터 를 포함 할 수 있 습 니 다.
Hash:키 값(key=>value)대 집합
List:간단 한 문자열 목록
set:string 형식의 무질서 한 집합
Zset:모든 요 소 는 하나의 double 유형의 점수 와 관련 되 고 redis 는 점 수 를 통 해 집합 중인 구성원 에 게 작은 것 부터 큰 것 까지 정렬 합 니 다.
Redis 기본 명령
Key: set, get, delete
Hash: hmset, hget, hdel
List: lpush, lindex
Set: sadd,smembers
Zset: zadd, zrange
구체 적 인 용법 은 인터넷 튜 토리 얼 이나 공식 문서 나 명령 행 알림 을 볼 수 있다.
Redis 영구 화
Redis 는 메모리 에서 실행 되 지만 지속 적 인 메커니즘 을 제공 합 니 다.
AOF:서버 에서 실 행 된 모든 쓰기 동작 명령 을 기록 하고 서버 가 시 작 될 때 이 명령 을 다시 실행 하여 데이터 세트 를 복원 합 니 다.
RDB:데이터 세트 생 성 시점 스냅 샷
수 동 으로 Redis 에 데이터 세트 저장:save
AOF 기능 열기:프로필 수정 appendonly yes
Labwork
데이터베이스 제10 차 탑승 작업 에 대해 약간의 총 결 을 진행 하 다
작업 요 구 는 다음 두 개의 json 대상 을 Redis 에 저장 하 는 것 입 니 다.
var someexpert={
id:10000
realname: ‘expert-a'
organization:'BUAA'
}
var frameworks=[
‘vue',
‘react',
‘angular'
]
저 는 저장 과정 에서 모두 python 의 list 형식 으로 json 으로 바 뀌 어 저 장 했 습 니 다.초기 화
초기 화 전에 우 리 는 먼저 터미널 에서 데이터 베 이 스 를 열 어야 합 니 다.구체 적 인 방법 은 참고 할 수 있 습 니 다macOS 에서 Redis 설치 및 테스트
우선 redis 모듈 을 가 져 와 야 합 니 다.
import redis\#redis 모듈 을 가 져 옵 니 다.python 을 통 해 redis 호스트 의 서버 에서 캐 시 데이터 베 이 스 를 직접 조작 할 수 있 습 니 다.
직접 pip 설치 하면 됩 니 다.
pip3 install redis
다음은 데이터 베 이 스 를 초기 화 하 는 것 입 니 다.host 는 redis 호스트 로 localhost 를 사용 하면 됩 니 다.redis 서버 와 클 라 이언 트 가 모두 시작 되 어야 합 니 다.redis 기본 포트 는 6379 입 니 다.
def __init__(self):
self.host = 'localhost'
self.port = '6379'
self.r = redis.StrictRedis(host=self.host, port=self.port)
많은 튜 토리 얼 에 redis.Redis 라 고 쓰 여 있 지만 공식 적 으로 는 redis.StrictRedis 를 사용 하 는 것 을 추천 합 니 다.redis 는 Redis 와 StrictRedis 두 가지 클래스 를 제공 합 니 다.StrictRedis 는 대부분의 공식 명령 을 실현 하고 공식 문법 과 명령 을 사용 합 니 다.Redis 는 StrictRedis 의 하위 클래스 로 이전 버 전의 redis-py 를 뒤로 호 환 합 니 다.
redis 기본 명령
목록 추가
lpush(name,values)
name 에 대응 하 는 list 에 요 소 를 추가 합 니 다.모든 새로운 요 소 는 목록 의 맨 왼쪽 에 추 가 됩 니 다.없 으 면 새로 만 듭 니 다.
이름 이 있 는 지 확인 하기
exists(name)
redis 의 name 이 존재 하 는 지,true 로 돌아 가 는 것 이 존재 하 는 지,그렇지 않 으 면 false 로 돌아 갑 니 다.
삭제
delete(*names)
redis 의 임의의 데이터 형식 삭제(string,hash,list,set,질서 set)
목록 길이
llen(name)
목록 의 길 이 를 되 돌려 줍 니 다.목록 name 이 존재 하지 않 으 면 name 은 빈 목록 으로 해석 되 어 0 으로 되 돌아 갑 니 다.name 이 목록 형식 이 아니라면 오 류 를 되 돌려 줍 니 다.
지정 한 목록 지정 구간 요소 가 져 오기
lrange(name, start, end)
목록 에서 지정 한 구간 의 요 소 를 되 돌려 줍 니 다.
구간 은 오프셋 start 와 end 로 지정 합 니 다.그 중에서 0 은 목록 의 첫 번 째 요 소 를 나타 내 고 1 은 목록 의 두 번 째 요 소 를 나타 내 며 이 를 유추 합 니 다.또한 음수 아래 표 시 를 사용 하여-1 로 목록 의 마지막 요 소 를 표시 하고-2 는 목록 의 마지막 두 번 째 요 소 를 표시 하여 유추 할 수 있다.
참조 코드
# -*- coding=utf-8 -*-
__author__ = 'XJX'
__date__ = '2018.06.09'
"""
description:
json Redis
"""
import json
import redis
class RedisTT(object):
def __init__(self):
self.host = 'localhost'
self.port = '6379'
self.r = redis.StrictRedis(host=self.host, port=self.port)
def insertRedis(self, keyName, jsonStr): # redis
self.r.lpush(keyName, jsonStr)
def save1():
someexpert = {}
someexpert['id'] = 10000
someexpert['realname'] = 'expert-a'
someexpert['organization'] = 'BUAA'
if RedisTT().r.exists('someexpert'):
RedisTT().r.delete('someexpert') # key someexpert
RedisTT().insertRedis(keyName='someexpert', jsonStr=json.dumps(someexpert))
def save2():
frameworks = ['vue', 'react', 'angular']
if RedisTT().r.exists('frameworks'):
RedisTT().r.delete('frameworks') # key frameworks
RedisTT().insertRedis(keyName='frameworks', jsonStr=json.dumps(frameworks))
if __name__ == "__main__":
save1()
save2()
print(RedisTT().r.lrange('someexpert', 0, RedisTT().r.llen('someexpert')))
print(RedisTT().r.lrange('frameworks', 0, RedisTT().r.llen('frameworks')))
출력 결과rdb 내 보 내기
redis-dump 설치
gem install redis-dump -V
redis-dump 내 보 내기 데이터
redis-dump Cu 127.0.0.1:6379 > db.rdb
redis 기본 데이터베이스 데 이 터 를 내 보 냅 니 다.기본 데이터 베 이 스 는 0 이 고 db.rdb 파일 은 현재 디 렉 터 리 에 있 습 니 다.
15 데이터베이스 의 데 이 터 를 지정 하면:
redis-dump Cu 127.0.0.1:6379 Cd 15 > db.rdb
내 보 낼 파일 데이터:
redis-load 복원 데이터
db.rdb 파일 을 새로운 redis 서버 에 업로드 하고 db.rdb 디 렉 터 리 에 들 어가 명령 을 수행 합 니 다.
< db.rdb redis-load;
혹은
cat db.rdb | redis-load
내 보 낼 때 데이터 베 이 스 를 지정 하면
cat db.rdb | redis-load Cd 15
이 python 3 는 json 대상 을 Redis 에 저장 하고 데이터 가 져 오기 내 보 내 는 것 이 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시기 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Jupyter 공식 DockerHub에 대한 메모에 기재되어 있다. base-notebook minimal-notebook scipy-notebook tensorflow-notebook datascience-notebook pyspark-notebook all-s...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.