网址:https://blog.csdn.net/weixin_39726347/article/details/88035356
https://www.jianshu.com/p/e0cc03f385ec
https://www.cnblogs.com/chichung/p/9993317.html
https://www.cnblogs.com/zhangxiaomeng1991/p/8257747.html
一.缓存全站配置
1.在settings中的MIDDLEWARE中添加django.middleware.cache.UpdateCacheMiddleware’和’django.middleware.cache.FetchFromCacheMiddleware’
(注意: update
中间件必须放在列表的开始位置,而fectch
中间件,必须放在最后。 这是Django使用中间件的规则,它们是有顺序关系的。),如下:
MIDDLEWARE = [ 'django.middleware.cache.UpdateCacheMiddleware', #缓存全站之开始缓存 注意: update中间件必须放在列表的开始位置,而fectch中间件,必须放在最后。 这是Django使用中间件的规则,它们是有顺序关系的。 'shucaiyidate.localuser.middleware.simple_middleware', #自定义中间键获取IP内容 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.cache.FetchFromCacheMiddleware',#缓存全站之结束缓存 注意: update中间件必须放在列表的开始位置,而fectch中间件,必须放在最后。 这是Django使用中间件的规则,它们是有顺序关系的。 ]
2.配置缓存设置,在settings中的配置如下:
CACHE_MIDDLEWARE_SECONDS = 300 #每个page需要被缓存多少秒.,超时时间设定为300秒
CACHE_MIDDLEWARE_ALIAS = "quanzhanhuancun" #用于存储的缓存的别名
CACHE_MIDDLEWARE_SECONDS = 300 #每个page需要被缓存多少秒.,超时时间设定为300秒
CACHE_MIDDLEWARE_KEY_PREFIX= #密钥前缀
二、基于本地(服务器)内存的缓存,缓存保存在服务器的内存中,在settings中的配置如下:
#基于本地(服务器)内存的缓存,缓存保存在服务器的内存中 CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'LOCATION': 'unique-snowflake', 'TIMEOUT': 600, 'OPTIONS': { 'MAX_ENTRIES': 2000 } } }
三、基于文件的缓存,在settings中的配置如下:
#将数据缓存在指定的目录中 CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', # 'LOCATION': '/var/tmp/django_cache', #linux路径 'LOCATION': 'E:\djangocache', #windows路径 'TIMEOUT': 600, 'OPTIONS': { 'MAX_ENTRIES': 1000 } } }
四、利用数据库来缓存:
1.先用
python manage.py createcachetable my_cache_table
命令创建一个表名为"my_cache_table"的表来缓存数据
2.在settings中的配置如下:
#利用数据库来缓存 CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.db.DatabaseCache', 'LOCATION': 'my_cache_table', #利用 python manage.py createcachetable my_cache_table 创建的“my_cache_table”表 'TIMEOUT': 600, 'OPTIONS': { 'MAX_ENTRIES': 2000 } } }
五、用Memcache来缓存:
Memcache简介 :https://www.cnblogs.com/tdalcn/p/6961627.html
1.安装依赖:
Ubuntu/Debian系统命令:
sudo apt-get install libevent ibevent-dev
Redhat/Fedora/Centos系统命令:
yum install libevent libevent-devel
安装telnet-server: yum install telnet-server
yum list telnet* #列出telnet相关的安装包
yum install telnet.* #安装telnet客户端
安装xinetd :yum -y install xinetd
2.安装memcached:
Ubuntu/Debian系统命令:
sudo apt-get install memcached
Redhat/Fedora/Centos系统命令:
yum install memcached
cat /etc/sysconfig/memcached #查看配置文件,如下
PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS=""
systemctl start memcached #启动memcached服务
systemctl enable memcached #开机启动memcached服务
telnet 127.0.0.1 11211 :连接成功,表示启动
netstat -tlunp :可以看到11211端口,即表示启动
或 ps -ef | grep memcached 可以看到服务启动的进程
使用 kill -9 进程id ,可以杀死进程
3.python中pip 安装“
pip install python-memcached #安装python-memcached
pip install pylibmc #安装pylibmc
4.在settings中的配置:
CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', #缓存后台使用的引擎#根据你安装的Python依赖库不同,将CACHES的BACKEND设置为django.core.cache.backends.memcached.MemcachedCache或者django.core.cache.backends.memcached.PyLibMCCache 'LOCATION': '127.0.0.1:11211', #设置LOCATION为你的Memecached守护进程所在的主机IP和进程端口,格式为ip:port的字符串。或者unix:path的形式,在Unix操作系统中。 'TIMEOUT': 600, # 缓存超时时间(默认300秒,None表示永不过期,0表示立即过期) 'OPTIONS': { 'MAX_ENTRIES': 2000, #最大缓存记录的数量(默认300) 'CULL_FREQUENCY': 3, # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3) } } }
5.linux 系统查看memcached使用情况:http://blog.sina.com.cn/s/blog_7d31bbee010193il.html
说明memcached重要关注数据:https://www.cnblogs.com/smallrookie/p/5776565.html
6. memcached官网文档:https://www.runoob.com/memcached/memcached-stats.html
7. 设置开机启动memcached : 网址:https://www.cnblogs.com/iceman-/p/7875285.html
在/etc/rc.d/rc.local 文件中追加:
/usr/local/memcached/bin/memcached -u root -d -m 2048 -l 192.168.137.99 -p 11211 -P /tmp/memcached.pid
也可不指定IP,默认是本机,如 (用户最好是 apache或 deamon)
/usr/local/memcached/bin/memcached -u deamon -d -m 2048 -p 11211 -P /tmp/memcached.pid
此处追加
/usr/bin/memcached -u root -d -m 2048 -p 11211 -P /tmp/memcached.pid