Memcache的key怎么管理

J2EE 码拜 5年前 (2015-04-22) 240次浏览 0个评论

本人在游戏公司做后台开发,一些数据会暂存到memcache  

但是在开发的时候遇到这样一个问题:

很多后台开发在他们自己写的扩展类里面,使用memcahce,会声明自己的key.

这样,对于我在写我的扩展类的时候,要用到memcache,声明key的时候,我就有点纠结了

我不知道哪些key已经被使用了,我也总不能去把其他人的所以代码看一遍,看看有哪些key已经使用。这样太麻烦了

于是乎,我不知道该怎么办了?

总结一下问题:

memcache的key怎么去管理,是把所有的key都写在单独一个类里面声明,还是写在一个配置文件里,这样如果你使用了哪个key,别人就可以知道了。。还是有其他更好的方法????

比如说A类里面,有代码: memcache.set(“key1”,value); memcache.set(“key2”,value2);

然后B类里面也有一些这样的代码,  memcache.set(“key3”,value);memcache.set(“key4”,value2);

还有C类,D类等等 太多太多了

所以在我用set方法的时候我就不知道哪些key已经被别人使用了。

2 现在memcache里面有很多数据了,还不能删,我想知道用了哪些key,怎么知道??
  我在网上查了一下,有个方法很麻烦:
   telnet 连接上memcache, stats items , 然后在 stats item index 0 这样就会把所有的key列出来,但是感觉很麻烦 ,有没有其他的方法知道已经使用了哪些key ????

Memcache的key怎么管理
引用 楼主 Anders_Zhuo 的回复:

本人在游戏公司做后台开发,一些数据会暂存到memcache  

但是在开发的时候遇到这样一个问题:

很多后台开发在他们自己写的扩展类里面,使用memcahce,会声明自己的key.

这样,对于我在写我的扩展类的时候,要用到memcache,声明key的时候,我就有点纠结了

我不知道哪些key已经被使用了,我也总不能去把其他人的所以代码看一遍,看看有哪些key已经使用。这样太麻烦了

于是乎,我不知道该怎么办了?

总结一下问题:

1 memcache的key怎么去管理,是把所有的key都写在单独一个类里面声明,还是写在一个配置文件里,这样如果你使用了哪个key,别人就可以知道了。。还是有其他更好的方法????

比如说A类里面,有代码: memcache.set(“key1”,value); memcache.set(“key2”,value2);

然后B类里面也有一些这样的代码,  memcache.set(“key3”,value);memcache.set(“key4”,value2);

还有C类,D类等等 太多太多了

所以在我用set方法的时候我就不知道哪些key已经被别人使用了。

2 现在memcache里面有很多数据了,还不能删,我想知道用了哪些key,怎么知道??
  我在网上查了一下,有个方法很麻烦:
   telnet 连接上memcache, stats items , 然后在 stats item index 0 这样就会把所有的key列出来,但是感觉很麻烦 ,有没有其他的方法知道已经使用了哪些key ????

这个你问下同事  应该会给你解答吧

Memcache的key怎么管理
20分
引用 楼主 Anders_Zhuo 的回复:

首先对你的头像表示抗议。
key的声明每个项目应该都有自己的规定,你们自己定就好。
最简单的方式:项目名,分割符,模块名,分隔符,功能名,分隔符,你使用的key。小项目基本不可能重复了。

Memcache的key怎么管理
确实这个东西也不需要全局的去约束,不然用个缓存要多出几步交互,各个上层应用做一个约定就好了
Memcache的key怎么管理
这种比较省功夫的做法就是做约定咯,配置实现完善还是比较麻烦,半吊子的不考虑咯
Memcache的key怎么管理
所有的key都写在同一个类下就好了啊,需要新的Key就去类下增加内容,当然每个人把自己要用的key放在一个范围里面,这样就不会冲突了。
Memcache的key怎么管理
引用 2 楼 zxcvbnm11920 的回复:
Quote: 引用 楼主 Anders_Zhuo 的回复:

首先对你的头像表示抗议。
key的声明每个项目应该都有自己的规定,你们自己定就好。
最简单的方式:项目名,分割符,模块名,分隔符,功能名,分隔符,你使用的key。小项目基本不可能重复了。

这个头像我用了整整一年多了!抗议无效!

Memcache的key怎么管理
 大多数我们用memcache的时候就是$memcache->set($key,$value);$memcache->get($key);
     当多人开发并且key越来越多的时候,你发现管理成了问题。有时候重新设置一个key,还会担心会不会被使用过了,所以memcache也需要“计划”着用。
    我使用memcache的方式就是先注册再使用。
     具体的作法就是封装memcache,在每次设置key的时候都要检查是否注册过,在取值的时候也要查看是否在范围之内。
    这样的作法可以很清楚的知道已经使用过的key,而且管理起来很方便,可以在后台选择性的刷新清楚memcache的key。
   这个网站的缓存就是我使用这样机制来做的,管理缓存确实方便清楚了很多,有兴趣的朋友可以看下:永动物流 (http://www.wuliu006.com ) 

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Memcache的key怎么管理
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!