在Python中使用AOP实现Redis缓存示例

在Python中使用AOP实现Redis缓存示例,第1张

概述越来越觉得的缓存是计算机科学里最NB的发明(没有之一),本文就来介绍了一下在Python中使用AOP实现Redis缓存示例,小伙伴们一起来了解一下

越来越觉得的缓存是计算机科学里最NB的发明(没有之一),本文就来介绍了一下在Python中使用AOP实现Redis缓存示例,小伙伴们一起来了解一下

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',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 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的在Python中使用AOP实现Redis缓存示例全部内容,希望文章能够帮你解决在Python中使用AOP实现Redis缓存示例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1201917.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存