Python使用redis存儲對象

2020-12-11 百度經驗

Python總的對象存儲到redis中默認為字符串,那麼如何存儲對象呢?

下面就看看如何直接將Python中對象存儲到redis中

先寫個測試redis是否正常連接上

import redis

cache = redis.StrictRedis('172.20.0.227',6379)

存儲字符串

key = "javaman_test"

value = "test_string_yy"

cachevalue = cache.get(key)

存儲Dict對象,取出來為字符串

value = {"id":1,"name":"sunxy"}

cache.set(key,value,60)

cachevalue = cache.get(key)

print type(value),type(cachevalue)

這時使用eval()對獲取的結果轉換成dict

cachevalue = cache.get(key)

trans_value = eval(cachevalue)

print type(trans_value),trans_value.get("name")

如果不是一個dict,直接是一個對象呢?

之前用了django中的對象,來看一下

取出來仍然是字符串,如何把對象存進去呢

eval()只是將結果轉換成字典,這個肯定不行,我們應該需要將對象存到redis中。

使用pickle模塊,在存入到redis中時調用dumps函數,獲取後調用loads函數

import pickleredis.set(key,pickle.dumps(xt_industry),180)

pickle.loads(result)

相關焦點

  • Python | Python學習之Redis交互詳解
    前言最近在學習scrapy redis,順便複習了redis。本篇為redis篇,包含實例演示,主從服務配置,python交互等內容。nosql與redis介紹nosql資料庫:不支持SQL語法存儲結構跟傳統關係型資料庫中的那種關係表完全不同,nosql中存儲的數據都是KV形式NoSQL的世界中沒有一種通用的語言,每種nosql資料庫都有自己的api和語法,以及擅長的業務場景NoSQL中的產品種類相當多:Mongodb,Redis,Hbase hadoop,Cassandra
  • Python操作Redis大全
    /usr/bin/python# -*- coding:utf-8 -*-# __author__ = 'Jack'pool = redis.ConnectionPool(host='127.0.0.1', port=6379)r = redis.Redis(connection_pool=pool)r.flushall()  # 清空Redis
  • 爬蟲大殺器 | Python學習之Scrapy-Redis實戰京東圖書
    scrapy-redis是github上的一個開源項目,可以直接下載到他的原始碼:https://github.com/rolando/scrapy-redisscrapy-redis 詳解scrapy-redis流程圖redis的使用參考前文寫的redis交互使用:Python | Python學習之Redis交互詳解scrapy-redis example-project
  • Spring Data Redis使用
    環境搭建要使用SDR,首先需要搭建Spring+SpringMVC環境,由於這個不是本文的重點,因此這一步我直接略過,Spring+SpringMVC環境搭建成功後,接下來我們要整合SDR,首先需要添加如下依賴:<dependency><groupId>redis.clients</groupId><artifactId>
  • 【深入學習Redis】Redis內存模型
    Redis使用鍵值對存儲數據,其中的值(對象)包括5種類型,即字符串、哈希、列表、集合、有序集合。這5種類型是Redis對外提供的,實際上,在Redis內部,每種類型可能有2種或更多的內部編碼實現;此外,Redis在存儲對象時,並不是直接將數據扔進內存,而是會對對象進行各種包裝:如redisObject、SDS等;這篇文章後面將重點介紹Redis中數據存儲的細節。
  • 騰訊開源分布式存儲系統 Tendis,可完全兼容 Redis
    近日,騰訊宣布開源一個與 Redis 協議完全兼容的高性能分布式存儲系統 Tendis。
  • redis五大數據類型使用場景
    下一個請求落在B伺服器上,想要從session中獲取用戶信息就不能正常獲取了,因為用戶信息的session在伺服器A上,為了解決這個問題,使用redis集中管理這些session,將session存入redis,使用的時候直接從redis中獲取就可以了。
  • 架構秘笈:移花接木,使用MySQL模擬Redis
    改業務代碼是來不及了,只好用一些持久化存儲 ,來模擬redis的一些數據結構。redis支持近十種數據類型,最常用的有5種。string、hash、zset、set、list等。本文將針對幾種常見的數據結構,探討一下常用操作的模擬實現。
  • Python編程入門練習題題目匯總-開課吧Python習題
    三:列出python中可變數據類型和不可變數據類型,並簡述原理不可變:int,str,tuple 不允許變量的值發生變化,如果改變了值,相當於創建一個新的對象,相同值的對象,內存中的地址是一樣的。六:提高python運行效率的方法1、使用生成器,節約內存2、優化for循環3、核心模塊用Cpython PyPy等,提高效率4、多進程,多線程、協程5、判斷可能性大的放到前面
  • 用 Python 操作 Redis,看這一篇就夠了
    前言前面兩篇文章聊到了 Python 處理 Mysql、Sqlite 資料庫常用方式,本篇文章繼續說另外一種比較常用的數據存儲方式:RedisRedis:Remote Dictionary Server,即:遠程字典服務,Redis 底層使用 C 語言編寫,是一款開源的、基於內存的 NoSql 資料庫由於 Redis 性能遠超其他資料庫,並且支持集群、分布式及主從同步等優勢
  • Python 中 Redis 庫分布式鎖簡單分析
    代碼分析實例化StrictRedis對象後,使用其中的lock方法便可獲得一個分布式鎖。首先看一下lock方法對應的源碼。self.redis = redis        self.name = name        self.timeout = timeout        self.sleep = sleep        self.blocking = blocking        self.blocking_timeout = blocking_timeout
  • acl 框架中的 Redis 庫已經支持集群版 Redis 3.0
    redis 進行分庫了,之前人們為了使單機版的 redis 能支持集群方式,往往是在客戶端或通過加一個中間的代理層(比如使用 tweaproxy)做很多工作,現在有了集群版的 redis3.0 ,這些額外的操作都不再需要。
  • 一文搞定Redis五大數據類型及使用場景
    1.2.2 計數Redis中有一個字符串相關的命令incr key,incr命令對值做自增操作,返回結果分為以下三種情況:比如文章的閱讀量,視頻的播放量等等都會使用redis來計數,每播放一次,對應的播放量就會加1,同時將這些數據異步存儲到資料庫中達到持久化的目的。
  • 使用 redis-rdb-tools 解析 reids dump.rdb 文件及分析內存使用量
    現在越來越多人開始使用 Redis 了,主要是因為它十分高效、性能強勁、擴展性好。先介紹幾種分析 Redis 的工具!
  • 最全總結 | 聊聊 Python 數據處理全家桶(Redis篇)
    前言前面兩篇文章聊到了 Python 處理 Mysql、Sqlite 資料庫常用方式,本篇文章繼續說另外一種比較常用的數據存儲方式:RedisRedis:Remote Dictionary Server,即:遠程字典服務,Redis 底層使用 C 語言編寫,是一款開源的、基於內存的 NoSql 資料庫由於 Redis 性能遠超其他資料庫,並且支持集群、分布式及主從同步等優勢
  • 還不懂Redis是什麼?一文帶你深入Redis基本結構,準備向開發進軍
    前言Redis是網際網路技術領域使用最為廣泛的存儲中間件,它是「Remote Dictionary Service」的首字母縮寫,也就是「遠程字典服務」。Redis 以其超高的性能、完美的文檔、簡潔易懂的源碼和豐富的客戶端庫支持在開源中間件領域廣受好評。
  • 【Python基礎】可迭代對象&迭代器對象及其實現
    首選確保for循環的in後面是一個可迭代對象,這樣就能通過python內置函數iter()得到一個迭代器對象(iterator)我們在使用iter(list_test)時候實際內部調用了這個__iter__()函數 我們再看迭代字符串時候,我們發現沒有找到__iter__() , 但是有__getIterm__()這個接口
  • Redis安裝筆記
    KV型資料庫就是一個Key(鍵)對應一個Value(值),資料庫裡存儲著成千上萬組Key-Value數據,它們之間是獨立存在的,沒有任何關係。=/tongfu.net/env/redis-4.0.10/bin/redis-startExecStop=/tongfu.net/env/redis-4.0.10/bin/redis-quitPrivateTmp=true[Install]WantedBy=multi-user.targetEOF使用 systemctl 管理 redis 服務
  • 詳解Python中的可哈希對象與不可哈希對象(二)
    對於不可變類型而言,不同的值意味著不同的內存,相同的值存儲在相同的內存,如果將我們的不可變對象理解成哈希表中的Key,將內存理解為經過哈希運算的哈希值Value,這不正好滿足哈希表的性質嘛。字典的工作方式是使用 hash() 內置函數計算字典中存儲的每個鍵的 hash 代碼。hash 代碼根據鍵和每個進程的種子而變化很大;例如,"Python" 的 hash 值為-539294296,而"python"(一個按位不同的字符串)的 hash 值為 1142331976。然後,hash 代碼用於計算內部數組中將存儲該值的位置。
  • 精選Python面試100題
    1)python是一種解釋型語言,因此在使用python時不需要進行編譯2)聲明變量和類似變量時,不需要重複聲明變量的類型;3)Python非常適合面向對象的編程,因為它允許類的定義以及組合和繼承;4)函數是第一類對象,這意味著它們可以分配給變量,從其他函數返回並傳遞給函數,類也是第一類對象;5)用於許多領域,包括