1、Django緩存作用
參考博客:https://www.cnblogs.com/xiaonq/p/7978402.html#i6
- 由於Django是動態網站,所有每次請求均會去數據進行相應的操作,當程序訪問量大時,耗時必然會更加明顯
- 緩存將一個某個views的返回值保存至內存或者memcache中,5分鍾內再有人來訪問時,則不再去執行view中的操作
- 而是直接從內存或者Redis中之前緩存的內容拿到,並返回
2、Django中提供了6種緩存方式
- 1.開發調試緩存
# 開發調試緩存(雖然配置上,但實際沒有緩存,還是到數據庫取)
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.dummy.DummyCache', # 引擎
#注: 下面這些參數時公用的,五種緩存都可以使用
'TIMEOUT': 300, # 緩存超時時間(默認300,None表示永不過期,0表示立即過期)
'OPTIONS':{
'MAX_ENTRIES': 300, # 最大緩存個數(默認300)
'CULL_FREQUENCY': 3, # 緩存到達最大個數之后,剔除緩存個數的比例(3就是1/3)
},
}
}
- 2.內存緩存
# 注:內存緩存本質上就是在內存中維護一個字典,所存儲的形式就是字典的鍵值對組合
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
'LOCATION': 'unique-snowflake', #這個參數指定變量名必須唯一
}
}
- 3.文件緩存
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
'LOCATION': os.path.join(BASE_DIR,'cache'), #緩存內容存放的文件夾路徑
}
}
- 4.數據庫緩存
# 注:執行創建表命令 python manage.py createcachetable
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
'LOCATION': 'my_cache_table', # 數據庫表名(名字是自己取的)
}
}
- 5: Memcache緩存 兩種
# 注:Memcache緩存有兩個模塊:python-memcached模塊、 pylibmc模塊
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '127.0.0.1:11211', #使用ip加端口連接memcached
}
}
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': 'unix:/tmp/memcached.sock', #以文件的形式連本地memcached
}
}
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': [ # memcached天生支持集群
#1 均衡分配
'172.19.26.240:11211',
'172.19.26.242:11211',
#2 調整權重(權重和請求比例成正比)
('172.19.26.240:11211',1),
('172.19.26.242:11211',10),
]
}
}
# 注: pylibmc模塊只改變上面'BACKEND'配置為下面樣式即可
# 'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',