Pra*_*aur 1 python django json redis
我正在使用 Redis 在我的 django 项目中存储缓存数据。
下面是将缓存数据设置到 Redis 中的代码。
red = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, db=5, socket_timeout=2)
pip = red.pipeline()
cached_page = {}
cached_page['content'] = page.content
cached_page['header'] = page._headers
cached_page['has_tag'] = False
cached_page = json.dumps(cached_page)
pip.hset(url, 'cached_page', cached_page)
pip.execute()
Run Code Online (Sandbox Code Playgroud)
它工作正常,我能够成功地将数据设置到 redis 中。
现在我想has_pag在我的项目中的某些条件下将 的值更新为 True 。
下面是我用来将has_tag值更新为 True的代码。
cached_page = red.hget(url, 'cached_page')
cached_page = json.loads(cached_page)
_content = cached_page[u'content']
_headers = cached_page[u'header']
red = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, db=5, socket_timeout=2)
pip = red.pipeline()
cached_page = {}
cached_page['content'] = _content
cached_page['header'] = _header
cached_page['has_tag'] = True
cached_page = json.dumps(cached_page)
pip.hset(url, 'cached_page', cached_page)
pip.execute()
Run Code Online (Sandbox Code Playgroud)
它也工作正常,但当我从 Redis 获取数据时,我不想获取内容和标题。
请给我一个有效的解决方案。
您可以使用哈希将 dict 存储在 redis 中,而您只能从 cached_page 更新一个键/值。
In [1]: import redis
In [2]: pool = redis.ConnectionPool(host='localhost', port=6379, db=0)
In [3]: r = redis.Redis(connection_pool=pool)
In [4]: r.hmset('test', {1: 'a', 2: 'b'})
Out[4]: True
In [5]: r.hset('test', 2, 'c')
Out[5]: 0L
In [6]: r.hget('test', 2)
Out[6]: 'c'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4468 次 |
| 最近记录: |