服务器之家

服务器之家 > 正文

Django使用redis缓存服务器的实现代码示例

时间:2021-06-21 00:25     来源/作者:pythontab

redis相信大家都很熟悉了,和memcached一样是一个高性能的key-value数据库,至于什么是缓存服务器,度娘都有很明白的介绍了,我在这里就不一一介绍了。

那我们一般什么情况下才会使用缓存服务器呢?可不是什么情况都需要的哦,一般来说是在需要频繁对一个字段读取的时候才会需要将这个字段放入到缓存服务器上,而且由于key-value数据库一般只是放很简单的数据,所以在选择保存的对象的时候要注意选择好。

下面我就来介绍如何在django中配置使用redis数据库,首先是先安装redis了,在ubuntu中执行下面这句命令:

#安装redis服务器端

?
1
sudo apt-get install redis-server

然后为了能在django中使用redis,还需要安装redis for django的插件:

?
1
pip install django-redis

这是一个开源的项目,github地址是https://github.com/niwibe/django-redis,感谢作者。

那么现在就是在django的settings中配置了。

?
1
2
3
4
5
6
7
8
9
10
11
12
caches = {
  'default': {
    'backend': 'redis_cache.cache.rediscache',
    'location': '127.0.0.1:6379',
    "options": {
      "client_class": "redis_cache.client.defaultclient",
    },
  },
}
redis_timeout=7*24*60*60
cubes_redis_timeout=60*60
never_redis_timeout=365*24*60*60

其实只是需要caches中的那几条就可以了,后面这三句可以不需要的,只是我后面的例子里需要用到,我就在这里配置了。

好了,现在连接和配置都已经完成了,那么在项目中该如何使用呢?接下来看下面这段例子吧。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from django.conf import settings
from django.core.cache import cache
#read cache user id
def read_from_cache(self, user_name):
  key = 'user_id_of_'+user_name
  value = cache.get(key)
  if value == none:
    data = none
  else:
    data = json.loads(value)
  return data
#write cache user id
def write_to_cache(self, user_name):
  key = 'user_id_of_'+user_name
  cache.set(key, json.dumps(user_name), settings.never_redis_timeout)

通过上面的这两个方法就可以实现对redis的读取操作了,只需要将需要的字段当参数传入到方法中就好了。

那么之前提到的memcached呢?其实也是一样的配置:

?
1
2
3
4
5
6
caches = {
  'default': {
    'backend': 'django.core.cache.backends.memcached.memcachedcache',
    'location': '127.0.0.1:11211',
  }
}

当然用法也是和我上面的例子是一样的了。其实对于redis这样的缓存服务器来说,配置都是很简单的,而具体的使用也不难,官网上面也有很多简单明了的例子可以供我们参考,只有一点需要注意的,那就是对于要将什么样的信息保存到redis才是我们真正需要关心的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://www.pythontab.com/html/2014/pythonweb_1224/937.html

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021德云社封箱演出完整版 2021年德云社封箱演出在线看
2021德云社封箱演出完整版 2021年德云社封箱演出在线看 2021-03-15
返回顶部