最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python3實(shí)現(xiàn)將json對(duì)象存入Redis以及數(shù)據(jù)的導(dǎo)入導(dǎo)出

 更新時(shí)間:2020年07月16日 10:23:41   作者:angus_monroe  
這篇文章主要介紹了python3實(shí)現(xiàn)將json對(duì)象存入Redis以及數(shù)據(jù)的導(dǎo)入導(dǎo)出,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

Redis數(shù)據(jù)類型

String:二進(jìn)制安全,可以包含任何數(shù)據(jù)

Hash:一個(gè)鍵值(key=>value)對(duì)集合

List:簡(jiǎn)單的字符串列表

Set:string類型的無(wú)序集合

Zset:每個(gè)元素都會(huì)關(guān)聯(lián)一個(gè)double類型的分?jǐn)?shù),redis通過(guò)分?jǐn)?shù)來(lái)為集合中的成員進(jìn)行從小到大的排序

Redis基本命令

Key: set, get, delete

Hash: hmset, hget, hdel

List: lpush, lindex

Set: sadd,smembers

Zset: zadd, zrange

具體用法可查看網(wǎng)上教程或官方文檔或命令行提示

Redis持久化

Redis運(yùn)行在內(nèi)存中,但它同樣提供了持久化機(jī)制

AOF:記錄服務(wù)器執(zhí)行的所有寫操作命令,并在服務(wù)器啟動(dòng)時(shí),通過(guò)重新執(zhí)行這些命令來(lái)還原數(shù)據(jù)集

RDB:生成數(shù)據(jù)集的時(shí)間點(diǎn)快照

手動(dòng)讓Redis進(jìn)行數(shù)據(jù)集保存:save

打開(kāi)AOF功能:修改配置文件 appendonly yes

Labwork

針對(duì)數(shù)據(jù)庫(kù)第十次上機(jī)作業(yè)進(jìn)行一些總結(jié)

作業(yè)要求是將以下兩個(gè)json對(duì)象存入Redis

var someexpert={
 id:10000
 realname: ‘expert-a'
 organization:'BUAA'
}

var frameworks=[
 ‘vue',
 ‘react',
 ‘a(chǎn)ngular'
]

我在儲(chǔ)存過(guò)程中全部是以python中的list形式轉(zhuǎn)化為json進(jìn)行儲(chǔ)存的

初始化

在初始化前,我們首先需要在終端開(kāi)啟數(shù)據(jù)庫(kù),具體方法可以參考macOS上Redis的安裝與測(cè)試

首先我們需要導(dǎo)入redis模塊

import redis # 導(dǎo)入redis模塊,通過(guò)python操作redis 也可以直接在redis主機(jī)的服務(wù)端操作緩存數(shù)據(jù)庫(kù)

直接pip安裝即可

pip3 install redis

接下來(lái)就是初始化數(shù)據(jù)庫(kù)了,host是redis主機(jī)使用localhost即可,需要redis服務(wù)端和客戶端都啟動(dòng),redis默認(rèn)端口是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提供兩個(gè)類Redis和StrictRedis用于實(shí)現(xiàn)Redis的命令,StrictRedis用于實(shí)現(xiàn)大部分官方的命令,并使用官方的語(yǔ)法和命令,Redis是StrictRedis的子類,用于向后兼容舊版本的redis-py。

redis基本命令

增加list

lpush(name,values)

在name對(duì)應(yīng)的list中添加元素,每個(gè)新的元素都添加到列表的最左邊,沒(méi)有就新建

檢查名字是否存在

exists(name)

檢測(cè)redis的name是否存在,存在返回True,否則返回False

刪除

delete(*names)

根據(jù)刪除redis中的任意數(shù)據(jù)類型(string、hash、list、set、有序set)

列表長(zhǎng)度

llen(name)

返回列表的長(zhǎng)度。如果列表name不存在,則name被解釋為一個(gè)空列表,返回0。如果name不是列表類型,返回一個(gè)錯(cuò)誤。

獲取指定列表指定區(qū)間元素

lrange(name, start, end)

返回列表中指定區(qū)間內(nèi)的元素。

區(qū)間以偏移量start和end指定。 其中0表示列表的第一個(gè)元素,1表示列表的第二個(gè)元素,以此類推;也可以使用負(fù)數(shù)下標(biāo),以-1表示列表的最后一個(gè)元素,-2表示列表的倒數(shù)第二個(gè)元素,以此類推。

參考代碼

# -*- coding=utf-8 -*-
__author__ = 'XJX'
__date__ = '2018.06.09'

"""
description:
 將json對(duì)象存入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的鍵值對(duì)
 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的鍵值對(duì)
 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')))

輸出結(jié)果

導(dǎo)出rdb

安裝redis-dump

gem install redis-dump -V

redis-dump導(dǎo)出數(shù)據(jù)

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

導(dǎo)出redis 默認(rèn)數(shù)據(jù)庫(kù)的數(shù)據(jù),默認(rèn)數(shù)據(jù)庫(kù)為0,得到的db.rdb文件位于當(dāng)前目錄

如果指定15數(shù)據(jù)庫(kù)的數(shù)據(jù):

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

導(dǎo)出得到的文件數(shù)據(jù):

redis-load還原數(shù)據(jù)

將db.rdb文件上傳到新的redis服務(wù)器上,進(jìn)入到db.rdb目錄,執(zhí)行命令

< db.rdb redis-load;

或者

cat db.rdb | redis-load

如果導(dǎo)出時(shí)指定了數(shù)據(jù)庫(kù)

cat db.rdb | redis-load –d 15

以上這篇python3實(shí)現(xiàn)將json對(duì)象存入Redis以及數(shù)據(jù)的導(dǎo)入導(dǎo)出就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • django queryset 去重 .distinct()說(shuō)明

    django queryset 去重 .distinct()說(shuō)明

    這篇文章主要介紹了django queryset 去重 .distinct()說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • 輕松計(jì)算員工工資:Python工資單計(jì)算器

    輕松計(jì)算員工工資:Python工資單計(jì)算器

    本文介紹了一個(gè)基于Python的工資單計(jì)算器,幫助雇主輕松計(jì)算員工的工資。通過(guò)輸入員工的基本信息和工作時(shí)長(zhǎng),計(jì)算器可以自動(dòng)計(jì)算出工資,并考慮加班、扣款等因素,提供準(zhǔn)確的工資單。需要的朋友可以參考下
    2023-09-09
  • python抽樣方法解讀及實(shí)現(xiàn)過(guò)程

    python抽樣方法解讀及實(shí)現(xiàn)過(guò)程

    這篇文章主要介紹了python抽樣方法解讀及實(shí)現(xiàn)過(guò)程講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 使用Windows批處理和WMI設(shè)置Python的環(huán)境變量方法

    使用Windows批處理和WMI設(shè)置Python的環(huán)境變量方法

    今天小編就為大家分享一篇使用Windows批處理和WMI設(shè)置Python的環(huán)境變量方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • python3+dlib實(shí)現(xiàn)人臉識(shí)別和情緒分析

    python3+dlib實(shí)現(xiàn)人臉識(shí)別和情緒分析

    本文通過(guò)具體代碼不步驟給大家詳細(xì)講述了python3+dlib實(shí)現(xiàn)人臉識(shí)別以及情緒分析的方法,有需要的朋友參考下。
    2018-04-04
  • Python 異常處理總結(jié)

    Python 異常處理總結(jié)

    閱讀本篇文章以學(xué)習(xí) Python 異常處理。它應(yīng)該可以幫助您了解如何在程序中使用 try、except 和 finally 語(yǔ)句。下面跟著小編一起來(lái)學(xué)習(xí)文章內(nèi)容吧
    2021-09-09
  • Python大數(shù)據(jù)用Numpy Array的原因解讀

    Python大數(shù)據(jù)用Numpy Array的原因解讀

    一個(gè)Numpy數(shù)組由許多值組成,所有值的類型是相同的,Numpy 是Python科學(xué)計(jì)算的一個(gè)核心模塊,本文重點(diǎn)給大家介紹Python大數(shù)據(jù)Numpy Array的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2022-02-02
  • python裝飾器代碼解析

    python裝飾器代碼解析

    這篇文章主要介紹了python裝飾器代碼解析,文章分享的內(nèi)容有裝飾器通用模型及一些關(guān)鍵點(diǎn),通過(guò)舉例詳細(xì)介紹,具有一的參考價(jià)值,需要的朋友可以參考一下
    2022-03-03
  • Python的Pandas庫(kù)中使用DataFrame篩選和刪除含特定值的行與列

    Python的Pandas庫(kù)中使用DataFrame篩選和刪除含特定值的行與列

    Pandas是一個(gè)強(qiáng)大的數(shù)據(jù)處理庫(kù),提供了各種功能來(lái)操作和處理數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于Python的Pandas庫(kù)中使用DataFrame篩選和刪除含特定值的行與列的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • Python OpenCV特征檢測(cè)之特征匹配方式詳解

    Python OpenCV特征檢測(cè)之特征匹配方式詳解

    OpenCV中提供了兩種技術(shù)用于特征匹配,分別為Brute-Force匹配器和基于FLANN的匹配器。本文將為大家詳細(xì)介紹一下這兩種匹配方式,需要的可以參考一下
    2021-12-12

最新評(píng)論

永宁县| 武清区| 九龙城区| 浦东新区| 崇文区| 仪陇县| 长汀县| 阜平县| 芜湖市| 龙游县| 海宁市| 建平县| 中阳县| 安泽县| 手游| 乐亭县| 交城县| 信宜市| 镇远县| 秭归县| 阿巴嘎旗| 浑源县| 娄底市| 石城县| 司法| 赫章县| 九江县| 大名县| 富裕县| 黄大仙区| 武城县| 夏河县| 五莲县| 湟中县| 阳高县| 梅河口市| 米泉市| 通山县| 芷江| 炎陵县| 仪陇县|