我看到一些PHP代码使用memcache的时候用MD5以后的SQL语句作为Key来查询,为何?为什么不直接用SQL语句作为Key呢?

解决方案 »

  1.   

    因为echo md5("d")."<br />";
    echo md5("D")."<br />";结果是不一样的。就是说,如果你sql语句大小写不一样的时候,虽然意义一样,可是分别存入不同的KEY里面了。就是说,有点浪费系统资源。可是这样从另一方面讲也是为了安全,因为也许你这两个相同的key希望存入的value不一样呢。所以一般都md5一下。习惯了。给分吧。够详细了吧。
      

  2.   

    Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,
    目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。
    它可以应对任意多个连接,使用非阻塞的网络IO。
    由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。
      

  3.   

    我觉得这个没什么可讨论的,不就生成一个MD5串的key吗
    你也可以不用MD5,好使就行吧
      

  4.   

    另一个原因, 长度原因. md5 后是 32位.... SQL语句..... N 长吧.....