很多时候,一台Memcached同时为几个应用服务,为了避免各个应用之间相互不影响(缓存时Key重名,清除应用所有缓存等),一般会在Key前加版本前缀。缓存版本前缀的命名是一个很有技巧性的问题。
1.应用标识+主版本号
格式:{应用标识}_{主版本号},如 bbs.163.com_20101130.1
应用标识:确保应用的唯一性,建议使用应用域名
主版本号:建议使用日期,如同一日有多个版本,可在后面加递增数字。
这种格式的版本前缀一般会写在应用的配置文件中,如需要清除某一应用的所有缓存,只需更改版本号,不会影响其他应用,而旧的缓存让它自然过期即可。
2.应用标识+主版本号+副版本号
大部分情况下,使用主版本号就可以了。但是在一些情况下,我们不希望去更改配置文件,而是希望通过界面的操作就可以达到清除应用缓存的目的。因此,我们需要一个动态生成的副版本号。动态生成的副版本号可以储存于数据库,本地缓存,静态变量等,出于性能考虑及动态生成的副版本号必须不能重复的需要(重复的话可能会出现读到旧缓存的情况),建议使用当前时间作为副版本号,而不要使用单纯的阿拉伯数字。
格式:{应用标识}_{主版本号}_{副版本号},如 bbs.163.com_20101130.1_20101130.17.35.12
副版本号:建议使用当前时间(精确到秒),储存于静态变量效率最高,如 20101130.17.35.12