zoukankan      html  css  js  c++  java
  • NHibernate第三方二级缓存bug

    在下第一次使用NHibernate,看中了它的二级缓存,不过发现不开启缓存的话,数据是正常的,一旦开启就发现获取了很多重复数据,我试了NHibernate.Caches.MemCache和NHibernate.Caches.EnyimMemcached这两个缓存实现,发现bug是一样的,而使用NHibernate自带的NHibernate.Cache.HashtableCacheProvider缓存实现发现是正常的,所以我猜测是生成的key重复了的问题,因为memcache(我用windows版本)的key最长不能超过250,所以肯定会对超长的key进行散列,我用反编译工具把NHibernate.Caches.MemCache的代码抠出来调试了一下果然很多key散列成了一样的,比如下面这两个key:

    key1:

    Edu.DB:.NHibernate.Cache.StandardQueryCache@sql: /* criteria query */ SELECT this_.NewsClassify_ID as NewsClas1_11_0_, this_.NewsClassify_Name as NewsClas2_11_0_, this_.NewsClassify_Path as NewsClas3_11_0_, this_.NewsClassify_State as NewsClas4_11_0_, this_.NewsClassify_Icon as NewsClas5_11_0_, this_.NewsClassify_Parent as NewsClas6_11_0_ FROM NewsClassify this_ WHERE this_.NewsClassify_Name = ? and this_.NewsClassify_State = ?; parameters: []; named parameters: {'cp0'='专升本留学申请', 'cp1'='1'}; first row: 0

    key2:

    Edu.DB:.NHibernate.Cache.StandardQueryCache@sql: /* criteria query */ SELECT this_.NewsClassify_ID as NewsClas1_11_0_, this_.NewsClassify_Name as NewsClas2_11_0_, this_.NewsClassify_Path as NewsClas3_11_0_, this_.NewsClassify_State as NewsClas4_11_0_, this_.NewsClassify_Icon as NewsClas5_11_0_, this_.NewsClassify_Parent as NewsClas6_11_0_ FROM NewsClassify this_ WHERE this_.NewsClassify_Name = ? and this_.NewsClassify_State = ?; parameters: []; named parameters: {'cp0'='博士研究生申请', 'cp1'='1'}; first row: 0

    以上两个key只有结尾处的几个中文稍微有些区别,结果都散列成了bMRPNkL2ZgFqs6v1butPO2rZR+4=,这重复性太高了(虽然散列有重复是必然的)

    我准备代码扣出来,把散列key的地方用md5加密重新实现一下,应该就可以了,具体代码就不发了,因为没几个代码,我发这条随笔就是把这个现象反应一下。

    尝试了一番,发现光用md5重复的几率比较大,于是把用md5生成的字串作为salt,再用sha256加密一下,好多了。

  • 相关阅读:
    django 重建一个表
    近期数据工作的知识点总结(model-dict高级用法)
    搬运django中文网 CentOS7下部署Django项目详细操作步骤(django安装网站有时候打不开,备份用)
    创建ftp免密只读用户(外系统读取csv共享数据)
    某某系统从外部基础库读取数据
    离线安装 django-axes
    django queryset用法总结二
    django queryset用法总结一
    nginx 启动,停止 重启
    安装安全狗失败 ,linux wget的时候不去找目标ip,而是路由到其他ip,原因分析
  • 原文地址:https://www.cnblogs.com/zongchenjie/p/6692285.html
Copyright © 2011-2022 走看看