欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在Python中使用AOP實(shí)現(xiàn)Redis緩存示例

 更新時(shí)間:2017年07月11日 09:44:12   作者:flyfoxs  
本篇文章主要介紹了在Python中使用AOP實(shí)現(xiàn)Redis緩存示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

越來(lái)越覺(jué)得的緩存是計(jì)算機(jī)科學(xué)里最NB的發(fā)明(沒(méi)有之一),本文就來(lái)介紹了一下在Python中使用AOP實(shí)現(xiàn)Redis緩存示例,小伙伴們一起來(lái)了解一下

import redis 
enable=True 
#enable=False 
def readRedis(key): 
  if enable: 
    r = redis.Redis(host='10.224.38.31', port=8690,db=0, password='xxxx')   
    val = r.get(key) 
    if val is None: 
      print "can not find data for KEY:%s \n" % (key) 
      return None 
    else: 
      print "====Get VALUE from Redis by KEY:%s \n" % ( key) 
      return pickle.loads(val) 
  else: 
    print "disable cache" 
   
def writeRedis(key, val): 
  r = redis.Redis(host='10.224.38.31', port=8690,db=0, password='xxxx') 
  if val is None: 
    print "Val is None, don't save it to redis \n" 
  else: 
    r.set(key, pickle.dumps(val) ) 
    r.expire(key, 60*60*24*7) #1week 
    print "====Write value of KEY:%s to redis \n" % (key) 
   
import pickle, functools 
def cache(f): 
 def wrapper(*args, **kwargs): 
  key = pickle.dumps((f.__name__, args, kwargs)).replace("\n","") 
  val = readRedis(key) 
  if val is None: 
   val = f(*args, **kwargs) # call the wrapped function, save in cache 
   writeRedis(key, val) 
  return val # read value from cache 
 functools.update_wrapper(wrapper, f) # update wrapper's metadata 
 return wrapper  
 
@cache 
def foo(n): 
 return n*2 
 
foo(10) # first call with parameter 10, sleeps 
foo(10) # returns immediately 
foo(15) # returns immediately 
foo(19) # returns immediately 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • pandas 時(shí)間偏移的實(shí)現(xiàn)

    pandas 時(shí)間偏移的實(shí)現(xiàn)

    時(shí)間偏移就是在指定時(shí)間往前推或者往后推一段時(shí)間,即加減一段時(shí)間之后的時(shí)間,本文使用Python實(shí)現(xiàn),感興趣的可以了解一下
    2021-08-08
  • numpy中的nan和inf,及其批量判別、替換方式

    numpy中的nan和inf,及其批量判別、替換方式

    在Numpy中,NaN表示非數(shù)值,Inf表示無(wú)窮大,NaN與任何值計(jì)算都是NaN,Inf與0相乘是NaN,其余情況下與Inf運(yùn)算仍為Inf,可以使用np.isnan(), np.isinf(), np.isneginf(), np.isposinf(), np.isfinite()等函數(shù)進(jìn)行批量判別,返回布爾值數(shù)組
    2024-09-09
  • 解析Python3中的Import

    解析Python3中的Import

    本文通過(guò)示例代碼帶領(lǐng)大家一起學(xué)習(xí)Python3中的Import知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • python?用matplotlib繪制折線圖詳情

    python?用matplotlib繪制折線圖詳情

    這篇文章主要講訴了python?用matplotlib繪制折線圖的詳細(xì)內(nèi)容,眾所周知,matplotlib?是一款功能強(qiáng)大開(kāi)源的數(shù)據(jù)可視化模塊,憑借著強(qiáng)大的擴(kuò)展性構(gòu)建出更高級(jí)別的繪圖工具接口如seaborn、ggplot,下面我們就根據(jù)之前兩篇文章基礎(chǔ)掌握折線圖的繪制,需要的朋友可以參考一下
    2021-12-12
  • python迭代器,生成器詳解

    python迭代器,生成器詳解

    這篇文章主要介紹了Python中的迭代器和生成器,涉及到Python中很多重要的特性,小編覺(jué)得這篇文章寫(xiě)的還不錯(cuò),需要的朋友可以參考下
    2021-10-10
  • Python 實(shí)現(xiàn)圖像逐像素點(diǎn)取鄰域數(shù)據(jù)

    Python 實(shí)現(xiàn)圖像逐像素點(diǎn)取鄰域數(shù)據(jù)

    這篇文章主要介紹了Python 實(shí)現(xiàn)圖像逐像素點(diǎn)取鄰域數(shù)據(jù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • Python運(yùn)用于數(shù)據(jù)分析的簡(jiǎn)單教程

    Python運(yùn)用于數(shù)據(jù)分析的簡(jiǎn)單教程

    這篇文章主要介紹了Python運(yùn)用于數(shù)據(jù)分析的簡(jiǎn)單教程,主要介紹了如何運(yùn)用Python來(lái)進(jìn)行數(shù)據(jù)導(dǎo)入、變化、統(tǒng)計(jì)和假設(shè)檢驗(yàn)等基本的數(shù)據(jù)分析,需要的朋友可以參考下
    2015-03-03
  • python時(shí)間time模塊處理大全

    python時(shí)間time模塊處理大全

    這篇文章主要給大家介紹了關(guān)于python時(shí)間time模塊處理的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 詳解基于Scrapy的IP代理池搭建

    詳解基于Scrapy的IP代理池搭建

    這篇文章主要介紹了詳解基于Scrapy的IP代理池搭建,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 終端能到import模塊 解決jupyter notebook無(wú)法導(dǎo)入的問(wèn)題

    終端能到import模塊 解決jupyter notebook無(wú)法導(dǎo)入的問(wèn)題

    這篇文章主要介紹了在終端能到import模塊 而在jupyter notebook無(wú)法導(dǎo)入的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03

最新評(píng)論