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

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

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

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

#安装Redis服务器端

sudo apt-get install redis-server

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

pip install django-redis

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

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

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中的那几条就可以了,后面这三句可以不需要的,只是我后面的例子里需要用到,我就在这里配置了。

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

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呢?其实也是一样的配置:

CACHES = {
  'default': {
    'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
    'LOCATION': '127.0.0.1:11211',
  }
}

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

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

(0)

相关推荐

  • Django 缓存配置Redis使用详解

    一.cache介绍 由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存. 缓存工作原理:缓存是将一些常用的数据保存内存或者memcache中,在一定的时间内有用户来访问这些数据时,则不再去执行数据库及渲染等操作,而是直接从内存或memcache的缓存中去取得数据,然后返回给用户. Django提供了6种缓存方式: 开发调试缓存 内存缓存 文件缓存 数据库缓存 Memcache缓存(使用python-memcached

  • django celery redis使用具体实践

    环境准备 python3.5.4 windows redis pip install celery pip install redis windows下启动redirs server redis-server.exe redis.windows.conf celery配置 项目的settings.py文件修改: # celery 设置 # celery中间人 redis://redis服务所在的ip地址:端口/数据库号 BROKER_URL = 'redis://127.0.0.1:6379/0

  • redis之django-redis的简单缓存使用

    本文介绍了redis之django-redis的简单缓存使用,分享给大家,具体如下: 自定义连接池 这种方式跟普通py文件操作redis一样,代码如下: views.py import redis from django.shortcuts import render,HttpResponse from utils.redis_pool import POOL def index(request): conn = redis.Redis(connection_pool=POOL) conn.hs

  • Django中redis的使用方法(包括安装、配置、启动)

    一.安装redis: 1.下载: wget http://download.redis.io/releases/redis-3.2.8.tar.gz 2.解压 tar -zxvf redis-3.2.8.tar.gz 3.复制,放到/usr/local目录下 sudo mv ./redis-3.2.8 /usr/local/redis 4.进入到redis目录下 cd /usr/local/redis/ 5.生成 sudo make 6.测试,时间会比较长 sudo make test 7.安装

  • django缓存配置的几种方法详解

    为什么要用缓存? 首先说,为什么要用缓存的,由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中,5分钟内再有人来访问时(时间可以设置),则不再去执行view中的操作,而是直接从内存或者Redis中之前缓存的内容拿到,并返回. 另外,缓存只是一类统称,一般其介质是速度很快的内存,但也可以是能加快数据读取的其它方式. 什么时候适合用缓存? 对页面实时性要求

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

    redis相信大家都很熟悉了,和memcached一样是一个高性能的key-value数据库,至于什么是缓存服务器,度娘都有很明白的介绍了,我在这里就不一一介绍了. 那我们一般什么情况下才会使用缓存服务器呢?可不是什么情况都需要的哦,一般来说是在需要频繁对一个字段读取的时候才会需要将这个字段放入到缓存服务器上,而且由于key-value数据库一般只是放很简单的数据,所以在选择保存的对象的时候要注意选择好. 下面我就来介绍如何在Django中配置使用redis数据库,首先是先安装redis了,在U

  • python获取淘宝服务器时间的代码示例

    然但是,这个只能获取到秒,没法到毫秒.我暂时不知道该咋解决 代码 import requests import time while True: class timeTaobao(object): r1 = requests.get(url='http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp', headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64)

  • Django使用redis配置缓存的方法

    对于非经常更新的服务器数据,若每次都从硬盘读取一次,会浪费服务器资源.拖慢响应速度,而且数据更新频率较高,服务器负担比较大.若保存到数据库,还需要额外建立一张对应的表存储数据.一个更好的方法是在Django中使用Redis进行缓存,下面通过本文给大家介绍Django使用redis配置缓存的方法. 前言   动态网站的基本权衡是,它们是动态的.每次用户请求页面时,Web服务器都会进行各种计算 - 从数据库查询到模板呈现再到业务逻辑 - 以创建站点访问者看到的页面.从处理开销的角度来看,这比标准的文

  • 浅谈Redis 缓存的三大问题及其解决方案

    目录 一.缓存穿透 1. 常见解决方案 2. 布隆过滤器 3. 缓存空数据与布隆过滤器的比较 二.缓存击穿 解决方案 三.缓存雪崩 解决方案 Redis 经常用于系统中的缓存,这样可以解决目前 IO 设备无法满足互联网应用海量的读写请求的问题. 一.缓存穿透 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起 id 为-1 的数据或者特别大的不存在的数据.有可能是黑客利用漏洞攻击从而去压垮应用的数据库. 1. 常见解决方案 对于缓存穿透问题,常见的解决方案有以下三种: 验证拦截:

  • 使用注解实现Redis缓存功能

    本文实例为大家分享了使用注解实现Redis缓存功能的具体代码,供大家参考,具体内容如下 非关系型内存数据库,有持久化操作, c语言编写的key,value存储系统(区别于MySQL的二维表格的形式存储.) rdb:周期性的持久化 aof:以日志形式追加 默认rdb开启,同时开启使用aof 数据类型:string.list.set.zset.hash. bitMaps 字节形式存储.geospatial 经纬度类型... 单线程:采用多路io复用实现高并发 使用: 添加依赖 <!-- redis

  • Django项目如何配置Memcached和Redis缓存?选择哪个更有优势?

    对于中大型网站而言,使用缓存减少对数据库的访问次数是提升网站性能的关键手段之一.在Django项目生产环境中最常用的缓存后台是Memcached和Redis.今天小编就手把手教你如何在Django项目中配置Memcached和Redis作为缓存后台.那么它们两个到底哪个更好呢? 本文会对比这两个存储系统并在文末给出答案. Memcache缓存 Memcache是一个高性能的分布式内存对象缓存系统,是Django原生支持的最快最有效的缓存系统.Memcached的优点是速度快,属于分布式缓存,支持

  • Django使用Redis进行缓存详细步骤

    目录 1.背景和意义 2.配置步骤如下 1,服务器端安装 redis 2,Redis 访问控制 3,安装django-redis和settings配置 4,测试缓存是否成功 1.背景和意义 服务器数据非经常更新.若每次都从硬盘读取一次,浪费服务器资源.拖慢响应速度.而且数据更新频率较高,服务器负担比较大.若保存到数据库,还需要额外建立一张对应的表存储数据.在Django中建立表通常做法是建立一个模型.看似简单,但是调试麻烦.开发时长久.为了进行服务器的加速,使用Redis进行缓存. 2.配置步骤

  • Java客户端利用Jedis操作redis缓存示例代码

    前言 Redis是一个开源的Key-Value数据缓存,和Memcached类似.Redis多种类型的value,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型). Jedis 是 Redis 官方首选的 Java 客户端开发包.下面就来给大家详细关于Java客户端利用Jedis操作redis缓存的相关内容,话不多说,直接来看示例代码吧. 示例代码: //连接redis ,redis的默认端口是6379 Jedis

  • 使用 Redis 缓存实现点赞和取消点赞的示例代码

    点赞功能是很多平台都会提供的一个功能,那么,我们要如何实现点赞和取消点赞呢? 这篇文章总结了我在项目中实现点赞的方法. 缓存 vs 数据库? 首先我们要考虑的是数据要放到哪里,很多时候我们都会把数据放到数据库(如 MySQL),由于关系型数据库的稳定性,大部分场景下我们也都会使用关系数据库来存储数据. 不过,在一些特殊的场景下,传统的关系型数据库很可能无法满足我们的需求.比如,在访问量较大的情况下,数据库很可能会宕机或者访问速度非常慢.这对用户来说是不能容忍的.因此就有了非关系型数据库,如 Re

  • 基于 Spring Aop 环绕通知实现 Redis 缓存双删功能(示例代码)

    基于 spring aop 常规应用场景多是用于日志记录以及实现 redis 分布式锁,在 github 中也有项目是把它拿来当作缓存的异常捕捉.从而避免影响实际业务的开发:在某天,笔者有个业务开发是给某个服务模块增加 redis 缓存.增加缓存就会涉及 redis 删除.所以笔者就在思考是不是可以用环绕通知的方式来进行实现 代码实现 结构示意图: 自定义注解 RedisDelByDbUpdate @Repeatable 表示允许在同一个地方上使用相同的注解,没有该注解时贴相同注解会报错 @Ta

随机推荐