默认情况下,某个键的存在是没有时效性的,即在明确删除该键之前,该键会一直有效。
当然在创建字符串数据时是可以指定时效的,也可以在键创建后修改时效属性,如让该键的有效期为5秒,到了时间该键便会自动被删除。
下面的代码演示了一个键在设定时效后自动被删除的情况:
import time, redis
r = redis.Redis(host='10.20.17.13', port=6379, db=0) # 建立连接
_key = "exists_test_key" # 键
_val = "exists_test_val1" # 值
if r.exists(_key) > 0: # 如果存在了这个键,先删除它
r.delete(_key)
r.set(_key, _val) # 创建这个键
if r.exists(_key) > 0: # 如果有这个键
print("1) key exists")
r.expire(_key, 2) # 这个键在2秒后就无效了
time.sleep(3) # 休眠3秒
if r.exists(_key) > 0: # 查看这个键是否还存在
print("2) key exists")
else:
print("2) key doese NOT exists")
运行结果:
$ python expire1.py
1) key exists # 刚刚创建时是存在的
2) key doese NOT exists # 休眠3秒后就不存在了