一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python3實現將json對象存入Redis以及數據的導入導出

python3實現將json對象存入Redis以及數據的導入導出

2020-07-16 12:34angus_monroe Python

這篇文章主要介紹了python3實現將json對象存入Redis以及數據的導入導出,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

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

針對數據庫第十次上機作業進行一些總結

作業要求是將以下兩個json對象存入Redis

?
1
2
3
4
5
6
7
8
9
10
11
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 也可以直接在redis主機的服務端操作緩存數據庫

直接pip安裝即可

pip3 install redis

接下來就是初始化數據庫了,host是redis主機使用localhost即可,需要redis服務端和客戶端都啟動,redis默認端口是6379

?
1
2
3
4
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用于實現Redis的命令,StrictRedis用于實現大部分官方的命令,并使用官方的語法和命令,Redis是StrictRedis的子類,用于向后兼容舊版本的redis-py。

redis基本命令

增加list

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表示列表的倒數第二個元素,以此類推。

參考代碼

?
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# -*- 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')))

輸出結果

python3實現將json對象存入Redis以及數據的導入導出

導出rdb

安裝redis-dump

gem install redis-dump -V

redis-dump導出數據

redis-dump –u 127.0.0.1:6379 > db.rdb

導出redis 默認數據庫的數據,默認數據庫為0,得到的db.rdb文件位于當前目錄

如果指定15數據庫的數據:

redis-dump –u 127.0.0.1:6379 –d 15 > db.rdb

導出得到的文件數據:

python3實現將json對象存入Redis以及數據的導入導出

redis-load還原數據

將db.rdb文件上傳到新的redis服務器上,進入到db.rdb目錄,執行命令

< db.rdb redis-load;

或者

cat db.rdb | redis-load

如果導出時指定了數據庫

cat db.rdb | redis-load –d 15

以上這篇python3實現將json對象存入Redis以及數據的導入導出就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/angus_monroe/article/details/80635187

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人在线免费观看视频 | 色综合欧美色综合七久久 | 亚洲夜色夜色综合网站 | 亚洲一区二区日韩欧美gif | 福利片中文 | 吃胸膜奶视频456 | 日本人和黑人一级纶理片 | 亚洲精品AV无码喷奶水糖心 | 成人免费高清视频 | 精品一区久久 | 国产专区视频在线观看 | 清纯漂亮女友初尝性过程 | 精品国产综合区久久久久久 | 99在线视频观看 | 喘息揉弄1v1h老师 | 秘书在办公室疯狂被hd | 久久se精品一区二区国产 | 成人网18免费网站 | 色综合久久日韩国产 | 多人群p全肉小说 | 久久99亚洲热最新地址获取 | 欧美一级片免费 | 精品国产免费一区二区三区 | 交换余生在线播放免费 | 9总探花新品牛仔背带裤 | 91久| 秋葵丝瓜茄子草莓榴莲樱桃 | 99精品视频免费在线观看 | 日本在线不卡免 | 美女被视频网站看免费入口 | xnxx老师| 四虎一影院区永久精品 | 国产伦码精品一区二区三区 | 日本一卡二卡3卡四卡无卡网址 | 日本xxoo动图网站欧美 | 啊皇上你好大要知画 | 亚洲 日韩 国产 中文视频 | 成人伊在线影院 | 99九九成人免费视频精品 | 网友自拍偷拍 | bt国产|