代码之家  ›  专栏  ›  技术社区  ›  Hassan Baig Altons

从redis实例检索数据是否比从Django的request.session字典检索数据慢?

  •  0
  • Hassan Baig Altons  · 技术社区  · 6 年前

    在Python/Django应用程序中,检索redis中存储的值是否比检索 request.session 字典?


    我有一个Django应用程序,在那里我使用基于DB的会话。也就是说,不用 django.contrib.sessions 3rd party library .

    redis-py wrapper (即。 my_server.set('test','1') ). 我将相同的测试值保存在 request.session['test'] .

    然后,我从每个测试中检索测试值,并比较所用的时间。 在这种情况下,性能超过redis的2倍。


    问题:

    结果对我来说似乎不合直觉。为什么?因为我的会话是基于DB的,我认为redis会比Django提供的更快。显然,我错了。

    专家能解释一下这里到底发生了什么吗?也许redis的核心API上的python包装器正在减慢速度?


    1 回复  |  直到 6 年前
        1
  •  2
  •   Daniel Roseman    6 年前

    会话存储为单个blob,而不是单个键。几乎可以肯定,当您进入视图时,它已经被加载和解码,很可能是由auth中间件加载和解码的。一旦加载了它,它就作为字典存储在本地,这就是计时测试所要测量的全部内容。