Django cache redis 最全介绍

481 阅读4分钟

这是我参与2022首次更文挑战的第16天,活动详情查看2022首次更文挑战

cache.add(key, value, timeout=DEFAULT_TIMEOUT, version=None, client=None): 如果键不存在,则在缓存中设置一个值。如果给定Timeout,使用该Timeout作为键;否则使用 默认的缓存超时。如果存储了该值则返回True,否则返回False。

clear() 清除所有键值对

client 获取客户端

cclose() 关闭缓存链接

decr(self, key, delta=1, version=None) 从缓存中的值减去delta。如果键不存在,则引发ValueError异常。

decr_version(self, key, delta=1, version=None) 从所提供的键的缓存版本中减去delta。返回新版本结果default_timeout获取默认超时时间

delete(self, key, version=None) 删除key并返回是否成功或失败

delete_many(self, keys, version=None) 一次删除多个键。

delete_pattern(self, pattern, version=None, client=None, itersize=None, prefix=None) 删除所有匹配模式的键

expire(self, key, timeout, version=None, client=None)

expire_at(self, key, when: Union[datetime, int], version=None, client=None) 在分片客户端上将'key'的过期标志设置为'when'。'when',可以表示为表示Unix的整数或Python datetime对象。

get(self, key, default=None, version=None) 从缓存中获取给定的键。如果键不存在,则返回default,它本身默认为None。

get_backend_timeout(self, timeout=DEFAULT_TIMEOUT) 根据所提供的返回此后端可用的超时值超时。

get_many(self, keys, version=None) 从缓存中获取一串密钥。对于某些后端(memcached,Pgsql)当获取多个值时,这可以much快。返回一个字典,将键中的每个键映射到它的值。如果给定的键丢失,它将从响应字典中丢失。

get_or_set(self, key, default, timeout=DEFAULT_TIMEOUT, version=None) 从缓存中获取给定的键。如果密钥不存在,添加该键并将其设置为默认值。默认值can也可以是任何可调用的。如果给定timeout,则将该timeout用于关键的;否则使用默认的缓存超时。返回存储或检索的键的值。

has_key(self, key, version=None) 如果键在缓存中且未过期则返回True。

incr(self, key, delta=1, version=None) 将增量加到缓存中的值。如果键不存在,则抛出ValueError例外。

incr_version(self, key, delta=1, version=None) 为所提供的键添加增量到缓存版本。返回新的版本。

iter_version()

iter_keys(self,search: str,itersize: Optional[int] = None,client: Optional[Redis] = None,version: Optional[int] = None,) 与键相同,但使用的是redis >= 2.8游标为了使内存有效,键迭代。

key_func

key_prefix

keys(self, search: str, version: Optional[int] = None, client: Optional[Redis] = None) 执行KEYS命令并返回匹配的结果。警告:这可能返回大量的结果,在在这种情况下,强烈建议使用iter_keys 为它。

lock(self,key,version: Optional[int] = None,timeout=None,sleep=0.1,blocking_timeout=None,client: Optional[Redis] = None,thread_local=True,)

logger()

make_key(self, key, version=None) 构造所有其他方法使用的键。缺省情况下,使用Key_func生成一个密钥(默认情况下,该密钥附加在“key_prefix”和“版本”)。可以提供不同的键功能在缓存建设时;或者,也可以子类化缓存后端以提供自定义键生成行为。

persist(self, key: Any, version: Optional[int] = None, client: Optional[Redis] = None)

pexpire(self, key, timeout, version=None, client=None)

pttl(self, key, version=None, client=None) 执行PTTL redis命令,返回指定键的“生存时间”。如果key是非易失性键,则返回None。

set(self, key, value, timeout=DEFAULT_TIMEOUT, version=None) 在缓存中设置一个值。如果给定timeout,则将该timeout用于关键的;否则使用默认的缓存超时。

set_many(self, data, timeout=DEFAULT_TIMEOUT, version=None) 一次从key/value的字典中设置一串值对。对于某些后端(memcached),这要高效得多而不是多次调用set()。如果给定timeout,则使用该timeout作为键;否则使用默认的缓存超时。在支持它的后端上,返回失败的键的列表插入,如果成功插入所有键,则为空列表。

touch(self, key, timeout=DEFAULT_TIMEOUT, version=None) 使用timeout更新密钥的过期时间。如果成功返回True如果密钥不存在,则为False。

ttl(self, key: Any, version: Optional[int] = None, client: Optional[Redis] = None) 执行TTL redis命令,返回指定密钥的“生存时间”。如果key是非易失性键,则返回None。

validate_key(self, key) 对不能移植到memcached的键发出警告后端。这鼓励(而不是强制)编写后端可移植的代码缓存代码。

version 版本