0

我无法弄清楚这一点,并且在谷歌搜索后找不到解决方案。我正在为我的 Django 应用程序实现缓存。

我采取的步骤是:

  1. brew install libmemcache,它也安装了 memcache

  2. 点安装 pylibmc

  3. pip install -e hg+https://jmoiron@bitbucket.org/jmoiron/johnny-cache,安装没有错误。

  4. 将此添加到我的 settings.py

    CACHES = {
        'default': {
            'BACKEND': 'johnny.backends.memcached.PyLibMCCache',
            'LOCATION': ['127.0.0.1:11211'],
            'JOHNNY_CACHE': True,
        }
    }
    JOHNNY_MIDDLEWARE_KEY_PREFIX = 'product'
    
    MIDDLEWARE_CLASSES = (
        'johnny.middleware.LocalStoreClearMiddleware',
        'johnny.middleware.QueryCacheMiddleware',
        ...
    }
    

现在,每当我浏览时,在控制台中我都可以看到存储在 memcache 中的东西,但是一旦 memcached get 出现,Caught TypeError while rendering: cannot concatenate 'str' and 'tuple' objects就会被抛出。不管正在运行什么命令,错误都在/env/pfenv/lib/python2.7/site-packages/django/db/backends/mysql/compiler.py in resolve_columns, line 12.

还有另一个关于此的 SO 问题,但选择的答案是仅使用项目的不同分支,该分支尚未更新,其更改实际上几乎立即合并到主存储桶中。pypi 版本(我也尝试过)来自他们声称破坏了事情的提交之前,并且那个版本给了我同样的错误。这个项目每两周左右更新一次,我想从他们发布的其他错误修复中受益。

这应该很容易实现,我在这里做错了什么?

更新

提交了一个错误报告,其中还包括堆栈跟踪,以防万一这不是我做过的事情。

更新 2

实际上回去刷新了缓存,关闭了 johnny-cache,并尝试了使用 pylibmc 的 vanilla django 缓存设置。不工作,每一页都出现同样的错误。用 python-memcache 尝试过,同样的事情。不知道在这里寻找什么。完全关闭缓存,该网站工作得很好。有点需要缓存。

更新 3

显然,这个相同的来源由一位同事检查并以相同的方式安装。我不知道有什么区别或者还有什么可以解决的。有什么建议么?

4

1 回答 1

0

这实际上从未在我的机器上修复过,仍然不确定问题是什么。但它可以在我们的部署服务器和同事开发环境中正常工作。我只是要留下答案,因为我的设置有问题,我假设数据库有问题,因为我遇到了与此相关的其他随机问题。

于 2012-06-15T16:50:51.383 回答