爱在莫斯科 发表于 2017-4-16 08:46:00

批量删除memcache中数据的几个方案

  memcache的使用过程中,最常遇到的麻烦之一就是无法批量删除memcache里的数据,而这又是实际中很需要的操作,以下总结了了几个方案:

[*]flush_all 全部清掉(比较暴力 )
[*]程序遍历所有可能的key,删除之 (精确,但需要有一种能生成所有可能的key的算法,适用于key比较固定的场合)
[*]修改应用程序中的key的生成规则(缺点是需要修改应用程序或配置文件,在一些大型应用中是不可行的)
[*]用多个key来定位一个数据(我认为是最佳的方案;用这种方式,key对应的内容除了存储实际数据,还要存储数据的版本。另外,还需要另一个公共的key2,用来存放当前有效数据的版本。每次读取数据时,如果能取回有效数据,还要再读取key2对应的版本,只有数据的版本不低于key2对应的版本的时候,数据才真正有效。清理方法:当这批数据过期后,只要把key2里的版本提升即可。)
第4个方案,对读取的性能稍稍有所损害,因为要多次读取memcache。一个解决方案是利用getMulti方法 ,一次从memcache中并行的读取多个item。

http://ziranxi.com/blog/201003-linux-23.html
 
页: [1]
查看完整版本: 批量删除memcache中数据的几个方案