django flask缓存memcache的key生成方法介绍

本文探讨了Django与Flask两种框架在使用Memcache时对缓存Key的不同处理方式。Django会在存储前给Key加上特定前缀,而Flask则直接使用原始Key。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

django flask缓存memcache的key生成方法介绍

标签: python


去年的一个django项目中,使用了memcache作为系统缓存,并实现多台机器上的缓存共享。配置的cache如下图所示:

django settings

最近在项目调试过程中,发现memcache在进行缓存时,使用的key并不是实际写入的key,一度我还以为是不是缓存的位置出BUG了。。想找下到底是存的是什么key:

telnet 10.200.75.11:11211

trying 10.200.75.11...
Connected to 10.200.75.11.
Escape character is '^]'.

get somekey
END

发现memcache中并没有django中写入的key(somekey),但是在django中却能取出来,看来并不是数据过期的原因。

好,那就单步调试,看django里的源码到底是如何写key value的:

set

make key

init

key func

至此,我们已经发现了,原来在存储之前,给key加了个前缀,格式如下:

:1:somekey

现在再去Telnet中获取key:

bash

至此,django中关于memcache的key问题终于解释清楚了,原来是加了一些前缀。

掉过头来看flask,猜测也是类似的操作,

flask中的cache配置:

flask_settings

单步跟着进去,发现竟然没有修改key的操作,再到Telnet中取一下,还真是没动key:

flask key


至此,我们可以发现:django在存储key的时候,加了一点前缀,而flask却没有。

希望能对你有所帮助。

AyoCross
2018年03月14日下午

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值