cache.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import time
  2. class Cache:
  3. def __init__(self):
  4. Cache.cache = {}
  5. # ttl 单位秒
  6. def set(self, key, value, ttl=None):
  7. Cache.cache[key] = {
  8. 'value': value,
  9. 'expires': time.time() + ttl if ttl else None
  10. }
  11. def get(self, key):
  12. item = Cache.cache.get(key)
  13. if item:
  14. if item['expires'] is None or item['expires'] > time.time():
  15. return item['value']
  16. else:
  17. del Cache.cache[key]
  18. return None
  19. def delete(self, key):
  20. if key in Cache.cache:
  21. del Cache.cache[key]
  22. def clear(self):
  23. Cache.cache.clear()
  24. if __name__ == "__main__":
  25. # 测试永久存储
  26. cache = Cache()
  27. cache1 = Cache()
  28. cache.set("key1", "value1")
  29. print("永久存储测试:", cache1.get("key1"))
  30. # 测试带过期时间的存储
  31. cache.set("key2", "value2", ttl=2)
  32. print("带过期时间存储测试(立即查询):", cache.get("key2"))
  33. time.sleep(3)
  34. print("带过期时间存储测试(过期后查询):", cache.get("key2"))
  35. # 测试删除功能
  36. cache.set("key3", "value3")
  37. cache.delete("key3")
  38. print("删除功能测试:", cache.get("key3"))
  39. # 测试清空功能
  40. cache.set("key4", "value4")
  41. cache.clear()
  42. print("清空功能测试:", cache.get("key4"))