1 使用memcached

1.1 安装memcached

安装(Linux)

sudo apt install memcached

启动

#方式一:
service memcached start
# 方式二:
/usr/bin/memcached -u memcache -m 1024 -p 11222 -l 0.0.0.0 -d start
  • -d:这个参数是让memcached在后台运行
  • -m:指定占用多少内存。以M为单位,默认为64M。
  • -p:指定占用的端口。默认端口是11211。
  • -l:别的机器可以通过哪个ip地址连接到我这台服务器,如果想要让别的机器连接,就必须设置-l 0.0.0.0

检测启动成功

ps aux|grep memcached
# memcache 11025 0.0 0.1 326560 2372 ? Ssl Aug28 0:01 memcached -u memcache -m 512 -p 11211 -l 0.0.0.0 -d

1.2 Django连接memcached

1.2.1在'setting.py'文件中添加缓存的配置

# 缓存
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': [
'172.19.26.240:11211',
'172.19.26.242:11211',
]
}
}

注意:添加的键的命名方式如下

def default_key_func(key, key_prefix, version):
return '%s:%s:%s' % (key_prefix, version, key)

如要修改,可在setting.py文件中添加配置'KEY_FUNCTION'

CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '172.19.26.240:11211',
'KEY_FUNCTION': lambda: key_prefix,version,key : 'Django'+key,
}
}

1.2.2 配置好之后在views中操作cache:

from django.core.cache import cache

def index(request):
cache.set('username','django',60)
print(cache.get('username'))
return HttpResponse('index')

2 使用redis

2.1 安装redis

安装(Linux)

  • 将下载的压缩文件解压
tar zxvf redis-4.0.8.tar.gz
  • 复制:推荐放在"/usr/local/"下
mv -r redis-4.0.8/* /usr/local/redis
  • 生成和安装
cd /usr/local/redis
make
make install

启动和配置

  1. 默认方式启动
redis-server
  1. 运行启动
redis-server --port 6380  # 指定运行的端口号
  1. 配置文件方式启动
redis-server /etc/redis/redis.conf

客户端连接redis

  1. 交互式方式
redis-cli -h {host} -p {port}  # 会进入交互式环境
  1. 命令方式
redis-cli -h {host} -p {port} {command}  # 直接执行一个命令,不进入交互式环境

停止redis服务

# 客户端关闭redis服务器,默认save即关闭时生成持久文件
redis-cli shutdown nosave|save

2.2 Django配置redis缓存

开发机上安装django-redis

pip install django-redis

配置文件'setting.py'

# 创建键时命名方式
def KEY_FUNCTION(key, key_prefix, version):
return "django:" + key # redis缓存
CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
# url格式 redis://[:password]@host:port/0
# 可以在url指定redis的密码,0表示低0个数据库
'LOCATION': 'redis://127.0.0.1:6379/1',
'OPTIONS': {
"CLIENT_CLASS": 'django_redis.client.DefaultClient',
'PASSWORD': '123456',
},
# 自定义键名命名规则
'KEY_FUNCTION': KEY_FUNCTION,
}
}

对view缓存

# 通过装饰器对views进行缓存
@cache_page(60 * 2) # 过期时间为秒
def cache(request):
return HttpResponse('cache')

对全站进行缓存,需在setting中设置

MIDDLEWARE = [
'django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',
]

对模板片段进行缓存

{% load cache %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>首页</title>
</head>
<body>
{% cache 120 username %}
hello, Django
{% endcache %}
</body>
</html>

底层的缓存API

>>>from django.core.cache import cache
>>>cache.set('username', 'django', 120)
>>>True
>>>cache.get('username')
>>>'django'
>>>cache.ttl('username')
>>>101
>>>cache.set_many({'a': 1, 'b': 2, 'c': 3})
>>>cache.get_many(['a', 'b', 'c'])
>>>OrderedDict([('a', 1), ('b', 2), ('c', 3)])

redis服务器:

127.0.0.1:6379[1]> keys *
1) "django:b"
2) "django:c"
3) "django:a"
127.0.0.1:6379[1]>

Django分别使用Memcached和Redis作为缓存的配置(Linux环境)的更多相关文章

  1. java集成memcached、redis防止缓存穿透

    下载相关jar,安装Memcached,安装教程:http://www.runoob.com/memcached/memcached-install.html spring配置memcached &l ...

  2. Redis+Spring缓存实例(windows环境,附实例源码及详解)

    原文出处: 小宝鸽 一.Redis了解 1.1.Redis介绍: redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串). ...

  3. 最新版redis的安装及配置 linux系统

    1.redis下载 官网地址:https://redis.io/download 百度云地址:链接:http://pan.baidu.com/s/1c1Hu2gK 密码:h17z 2.解压 [root ...

  4. Redis总结(九)Linux环境如何安装redis

    以前总结Redis 的一些基本的安装和使用,由于是测试方便,直接用的window 版的reids,并没有讲redis在linux下的安装.今天就补一下Linux环境如何安装redis. 大家可以这这里 ...

  5. Redis学习笔记一(Redis的详细安装及Linux环境变量配置和启动)

     Redis Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. 我使用的是下面这个版本: 若没有资源的话,我在 ...

  6. redis的安装和启动linux环境

    启动客户端连接redis服务,redis-cli -p(端口) -h(登录的服务的ip地址);不添加任何参数和选项直接使用redis-cli将会默认登录6379,默认使用ip 127.0.0.1#re ...

  7. redis(十六):Redis 安装,部署(LINUX环境下)

    第一步:下载安装包 访问https://redis.io/download  到官网进行下载.这里下载最新的4.0版本. 第二步:安装 1.通过远程管理工具,将压缩包拷贝到Linux服务器中,执行解压 ...

  8. Django缓存系统选择之Memcached与Redis的区别与性能对比

    Django支持使用Memcached和Redis这两种流行的内存型数据库作为缓存系统.我们今天来看Memcached和Redis的区别和性能对比. redis和memcached的区别 1.Redi ...

  9. Django使用Redis进行缓存详细最全流程

    背景和意义服务器数据非经常更新.若每次都从硬盘读取一次,浪费服务器资源.拖慢响应速度.而且数据更新频率较高,服务器负担比较大.若保存到数据库,还需要额外建立一张对应的表存储数据.在Django中建立表 ...

随机推荐

  1. No.1_NABCD模型分析

        Reminder 之 NABCD模型分析           定位 多平台的闹钟提醒软件. 在安卓市场发布软件,发布后一周的用户量为1000.           N (Need 需求) 这个 ...

  2. Daily Scrumming 2015.10.22(Day 3)

    今明两天任务表 Member Today’s Task Tomorrow’s Task 江昊 学习rails ActiveRecord 购买.注册域名 继续学习rails ActiveRecord 数 ...

  3. Linux下查看cpu使用率

    top命令 是Linux下常用的性能 分析工具 ,能够实时显示系统 中各个进程的资源占用状况,类似于Windows的任务管理 器.下面详细介绍它的使用方法. top - 02:53:32 up 16 ...

  4. Teamwork(The fifth day of the team)

    在前面几天的努力中,我们已经完成了一些自己的工作,还有的就是一些完善,因为在前段时间一直都在寻找和配置Eclipse+Android SDK,由于版本和一些网络的阻碍,总是不能如愿的很好完成,经过了一 ...

  5. 使用成员资格管理用户Membership

    ASP.NET成员资格使您可以验证和管理Web应用程序的用户信息.它提供验证用户凭据,创建和修改成员资格用户以及管理用户设置(如密码和电子邮件地址)的功能. ASP.NET成员资格主要用于ASP.NE ...

  6. 怎样利用好单片机上的存储器资源来实现OD的存储与访问

    转自:http://www.cnblogs.com/winshton/p/4897789.html 我们知道OD(对象字典)是CANopen的核心,所有功能都是围绕它开展的,是协议栈的数据中心,良好的 ...

  7. 官方下拉刷新控件SwipeRefreshLayout的使用

    今天看博客,发现有了这个下拉刷新的控件,效果看上去还蛮好的,于是我也想研究的是使用一下,写个demo.其实使用很简单的,但就是为了能使用这个新组建我下了好久的更新,后来还是直接去官网下载最新的ADT得 ...

  8. 半夜思考,为什么 String 具有不变性

    学习 Java 的数据类型时,特殊关照了 String 类型,具有不变性. 当时没有深入思考为什么 String 有不变性.而且我只碰到了 String 才有不变性.Java这样设计的缘由何在. 突然 ...

  9. 计算机网络【6】—— 从浏览器输入URL到显示页面发生了什么

    当在浏览器地址栏输入网址,如:www.baidu.com后浏览器是怎么把最终的页面呈现出来的呢?这个过程可以大致分为两个部分:网络通信和页面渲染. 一.网络通信 互联网内各网络设备间的通信都遵循TCP ...

  10. 【Java】提取JSON数值时遇到数组集合时使用的K-V方式转换

    1.实体类转换方法 参照文章:http://www.cnblogs.com/dflmg/p/6933811.html 2.K-V方法(此方法比较笨,但是没有办法,我现在不知道有没有相关的简单API,只 ...